2014-06-19 76 views
1

試圖用一個組合鍵在實體框架實體框架的複合關鍵問題

附加信息時,我得到這個問題:性表達「T =>新 <> f__AnonymousType0無效。該表達式應代表一個 屬性:C#:'t => t.MyProperty'VB.Net:'Function(t)t.MyProperty'。 使用匿名類型指定多個屬性時:C#:'t => new {t.MyProperty1,t.MyProperty2}'VB.Net:'Function(t)New With { t.MyProperty1,t.MyProperty2}' 。

的代碼是

// Primary Key 
this.HasKey(t => new { t.ID, t.ID2, t.Version.Major, t.Version.Minor, t.Version.Revision, t.Version.Build }); 

模型

public int ID { get; set; } 
    public short ID2 { get; set; } 

    private VersionType m_Version; 
    public VersionType Version 
    { 
    get 
    { 
     return m_Version; 
    } 
    set 
    { 
     SetProperty(ref m_Version, value,() => this.Version); 
    } 
    } 



modelBuilder.ComplexType<VersionType>() 

我相信它與屬性之前宣佈的版本類(專業等)做。

如果是這樣,有反正我可以解決這個問題嗎?

乾杯

+0

您能否爲您的模型添加代碼? – Marco

+0

從SQL關係和表的角度思考,當某些數據位於另一個表中時,如何將某個鍵設置在表上? IE瀏覽器。版。*。版本是't'的導航屬性,所以SQL無法爲其創建密鑰約束。 – Tacoman667

+0

@ Tacoman667我以爲它是複雜類型的一部分,但我們只能猜測,除非他發佈代碼 – Dismissile

回答