簡體   English   中英

在客戶端公開自定義服務器端實體框架屬性

[英]Exposing custom server-side Entity Framework properties on the client side

我正在使用WCF RIA服務制作Silverlight 4應用程序。

在服務器端( *.Web項目),我有一個從SQL Server數據庫自動生成的實體模型。 在客戶端,我具有Visual Studio生成的域服務和代理對象,可在Silverlight程序集中使用。

我想向模型添加自定義屬性(最好在服務器端)。 假設我有ContactCompanyAddress表,它們通過外鍵鏈接(但不一定是實際的外鍵約束 )。 我想添加一個屬性,該屬性將返回ContactCompanyAddress對象。

我一直在嘗試通過創建局部類來擴展Contact類,並添加CompanyAddress { get; } CompanyAddress { get; }屬性。 但是我不知道我需要如何處理新屬性才能使其傳播到客戶端上自動生成的代碼。 我必須添加到屬性中的特定屬性嗎? 我是否必須在某個地方注冊它,以便代碼生成器知道它?

這是否必須是Navigation屬性,還是可以更簡單一些?

而且這是否是做事的最佳方式,還是我應該放棄擴展服務器端模型,而只在客戶端上做呢? (如果在客戶端執行此操作,則會遇到無法訪問各個Entity派生類內部的上下文對象的問題。)

我從未使用過Silverlight或RIA服務,但我想它將非常相似。 當您創建EF模型並具有通過外鍵關聯的實體(必須是關聯關系)時,與其他實體關聯的每個實體都將包含一個稱為導航屬性的東西。 因此,在您的方案中,聯系人應包含名為Company的屬性,而公司應包含稱為Address的屬性。 您可以通過使用ObjectSet上的Include或通過延遲加載來構造EF來加載那些導航屬性(在WCF中不是個好主意)。 如果您通過WCF將“聯系人”發送給客戶,則“公司”和“地址”也將被發送。

您的方法存在一個大問題。 您的媒體資源僅包含getter-此類資源未序列化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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