簡體   English   中英

使用WCF服務公開的客戶端應用程序中的消費實體框架實體

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM