[英]Consuming Entity Framework entities in a client application that are exposed using a WCF services
我有一個DAL,其中有用於暴露實體的實體框架。 這些實體在WCF服務項目中使用,並向客戶端公開。
我通過服務引用在Silverlight Web項目中使用了這些實體。 然后,我正在使用RIA域服務進行代碼共享。 但是在嘗試加載操作時出現以下錯誤:
DomainContext context= new DomainContext();
LoadOperation<Genre> lo = context.Load<Genre>(context.GetGenres());
GetGenres()是一個域服務操作,它將加載所有流派。
[Invoke]
public IEnumerable<Genre> GetGenres()
{
return proxy.GetGenres(); //proxy is wcf proxy.
}
該查詢返回一個列表。 我從WCFServiceReference獲得的數據合同是Genre。
實際錯誤:
在通用類型或方法“ System.ServiceModel.DomainServices.Client.DomainContext.Load(System.ServiceModel.DomainServices.Client.EntityQuery)”中,類型“ SL.Web.ServiceReference.Genre”不能用作類型參數“ TEntity” 。 沒有從“ SL.Web.ChinookServiceReference.Genre”到“ System.ServiceModel.DomainServices.Client.Entity”的隱式引用轉換。
問題是:
我可以這樣做嗎?還是應該在Silverlight中有一個自定義類,該類映射到WCF服務數據契約並在Silverlight客戶端和Web項目之間共享該自定義實體?
有沒有一種方法可以使用DomainService在Web和客戶端之間共享服務引用中的實體?
問題是您將GetGenres標記為Invoke操作。 如果將其標記為查詢操作並進行重建,我認為您的狀態會很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.