我已经实现了一个Web服务,并通过ajax调用它。
注意:我的实体已经作为实体框架代码的第一个用途。通过Web服务返回实体框架类的问题
我的AJAX看起来如下:
$.ajax({
type: "GET",
url: "/MyProject/MyService.svc/GetEntity",
data: "entityID=1",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: AjaxSucceeded,
error: function (msg, status, extra) {
alert(status + " - " + extra);
}
});
AjaxSucceeded是简单地用数据变量,其中我只是在控制台记录数据的功能。
我GetEntity功能目前看起来是这样的:
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
public MyEntity GetEntity(int entityID)
{
AccessObject accessObject = new AccessObject("MyConnectionString");
MyEntity theEntity = accessObject.GetByID(entityID);
return theEntity;
}
我已经测试这与故意的测试创建了一个类和它的工作如预期(例如,我创造了一个Web服务中的myEntity所类非常简单,一些属性,没有其他方法等)。
当我返回一个我为代码优先的实体框架所做的实体时,出现这些问题。它不起作用,多次调用Web服务函数,然后在控制台中显示一个错误,指出“我的服务功能无法加载资源”。
供参考,这是我的实体:
[DataContract(IsReference=true)]
public class MyEntity
{
#region Properties
[Key]
[DataMember]
public int ID { get; set; }
public bool SomeBoolean { get; set; }
[StringLength(1000)]
public string Description { get; set;}
#endregion
#region Relationships
public virtual SomeOtherEntity OtherEntity { get; set; }
#endregion
}
我只设置ID是数据成员进行测试,但仍然没有成功。
任何人都可以指出我正确的方向吗?我知道Web服务工作,因为其他功能的工作,如果我建立一个本地(在Web服务)类,它将返回没有问题。所以我假设它与实体框架属性有关系?我可能是错的,但这就是我所能想象的。
谢谢你的时间。
哦也,仅供参考,我的服务类具有以下属性:
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
我尽量不把这个问题提交给一篇论文。对不起,它的长度。 – ThePower
你的wcf服务是“支持ajax的wcf服务”吗? –
@JoshC。是的。 – ThePower