[英]WCF Service with entity framework - error if foreign key
我有個問題。 請注意,我是一個初學者,答案可能很簡單。
我使用Visual Studio 2012,並且想使用實體框架創建WCF服務來訪問數據庫。 可以在5到10分鍾內完成...
我使用SQL Express創建了一個簡單的數據庫(例如:2個表:Client和City,在Client表中使用idCity作為外鍵)
我創建了一個新的WCF服務
當我在WCF測試客戶端或控制台應用程序中嘗試該方法時,出現CommunicazionException錯誤。
但是如果我在客戶表中刪除外鍵,它就可以正常工作。
我的getClients方法:
public Client[] GetClients()
{
using (ClientEntities context = new ClientEntities ())
{
context.Configuration.LazyLoadingEnabled = false;
return context.Client.ToArray();
}
}
我使用默認配置...
這是一種特殊的方法嗎? (我的代碼肯定無法完成我想要的操作)
在我的應用程序中,我想獲取所有客戶,並為每個客戶顯示客戶名稱和城市名稱。
謝謝
沒有更多細節就很難准確地判斷出您的問題是什么,但是當您刪除客戶端表上的外鍵時,該問題就起作用了,這使我相信您遇到了數據庫或實體框架問題。
您可能要嘗試更新.edmx。 右鍵單擊.edmx圖,然后從數據庫中選擇更新模型,然后選擇兩個表。
如果那行不通,您還可以嘗試從模型中刪除每個表(右鍵單擊edxml查看器並選擇Delete),然后也使用數據庫中的更新模型重新添加它們。
如果仍然有問題,請嘗試找出代碼在何處引發異常。 調試GetClient方法,並在return語句之后放置一個斷點,以查看執行查詢時是否發生錯誤。 如果是這種情況,您應該獲得更詳細的異常消息以幫助進行故障排除。
嘗試這個 :
public Client[] GetClients()
{
using (ClientEntities context = new ClientEntities ())
{
context.Configuration.LazyLoadingEnabled = false;
context.Configuration.ProxyCreationEnabled = false;
return context.Client.ToArray();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.