2014-04-02 146 views
1

而從db.The提取數據時出錯,我得到一個錯誤檢索的數據是這樣的: -從數據庫與外鍵約束

{"Invalid column name 'Amount_Value'.\r\nInvalid column name 'Amount_Currency'.\r\nInvalid column name 'Amount_Value'.\r\nInvalid column name 'Amount_Currency'."} 

這裏是我的「優惠」的主要模式: -

public class Deal { 

    public long ID { get; set; } 

    [StringLength(1024),Required] 
    public string Title { get; set; } 

    public Client Party { get; set; } 
    public long PartyID { get; set; } 


    public DateTime Created { get; set; } 
    public long Version { get; set; } 

    [DataType(DataType.MultilineText)] 
    public string Notes { get; set; } 

    public Money Amount { get; set; } 
    public DealKindEnum Mode { get; set; } 
    } 

這裏的「錢」是另一類是這樣的: - 我在使用此查詢得到錯誤

public class Money 
{ 
[DataType(DataType.Currency)] 
public double Value { get; set; } 
public string Currency { get; set; } 
} 

: -

var query = from client in db.Clients 
join ra in db.Deals on client.ID equals ra.PartyID 
where (ra.ID == id || id == 0) 
select ra; 
+0

所以錢不是一個實體=>不存在數據庫?如果是這樣,我認爲你的財產應該是虛擬的。 '公共虛擬貨幣金額{get; set;}'如果不是,你應該用'NotMappedAttribute'('[NotMapped]'屬性標記) –

+0

No.只是一個類 – user3206357

回答

1

對於不在數據庫中的屬性,EF無法做任何事情。 從您的評論,金錢不是一個實體。

所以,你必須在交易類屬性標記爲NotMapped

[NotMapped] 
public Money Amount { get; set; } 

和EF不會嘗試從數據庫在查詢時得到任何東西。 當然,你將不會有金額屬性的任何東西,但你怎麼可能,如果它不在分貝...

+0

感謝它的工作,請看看我的另一個問題我只在這個問題上編輯過。 – user3206357

+0

@AkankshaT你應該讓你的問題保持原樣並提出一個新問題。或者任何看這個的人都不會理解任何東西! –

+0

對不起,我正在那樣做。 – user3206357