我已經實現了一個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