2011-08-24 71 views
0

我必須做一些非常錯誤的事情,因爲這似乎是一個非常簡單的擴展,當您嘗試編譯代碼時會導致錯誤。使用部分類擴展實體類....不受支持的類型錯誤

因此,我們有一個客戶表,在該表中我們有一個Customer_ID。我們只存儲客戶ID,其餘數據來自客戶真相中心。

當我們生成我們的實體EDMX文件時,此Customer表被引用並創建一個Entity Customer對象。

我們帶着這個客戶ID,並從我們的客戶真相中心的WCF服務中獲取客戶信息的其餘部分。這會返回名稱,年齡等。

因此......我們想用這些附加屬性擴展現有的客戶實體,但是我們在客戶數據庫中「堅持」這些屬性。

因此,我們創建了一個局部類來擴展我們的實體的客戶是這樣的:

namespace UsingRIAServices.Web.Models 
{ 
    public partial class Customer 
    { 

     public string Name { get; set;} 
     public int Age { get; set;} 
    } 
} 

這沒有工作,當你建立你得到下面的錯誤。

實體「UsingRIAServices.Web.Models.Customer」有一個屬性‘與支持的類型CustomerReference’。

所以......如果你去到你看到這個屬性格式的Customer.Designer.cs

/// <summary> 
    /// No Metadata Documentation available. 
    /// </summary> 
    [BrowsableAttribute(false)] 
    [DataMemberAttribute()] 
    public EntityReference<Customer> CustomerReference 
    { 
      blah, blah 
    } 

並注意

所以在的EntityReference類型的客戶是現在我們的部分擴展分類。......我加[數據成員]每個項目在我們的部分類...同樣的錯誤。我試着到[排除]它並得到相同的錯誤。

爲什麼看起來這麼簡單直接如此困難。請幫助我們弄清楚如何擴展實體部分類。你可以用不在表格中的數據來做到這一點嗎?

感謝

回答

1

技巧是你的類添加到模型\共享Web項目的文件夾並命名類Customer.shared.cs。

然後,您將刪除新類中的所有使用語句,並將「partial」關鍵字添加到新類中。例如:

命名空間XXXX.Web { 公共部分類客戶 { 公共字符串全名 { 得到 { 回報姓+ 「」 +姓氏; } } } }