2016-03-05 102 views
0

我的模型屬性需要來自自定義類型。這個自定義類型有兩個屬性[ID,TextToShow]。我想要的只是保存自定義類型的ID在數據庫中的值。 TextToShow的另一個值僅在從數據庫中檢索時使用。實體框架:如何將列映射到數據庫?

我使用EF6,VS2015和C#如果你想實體框架忽略數據庫中的一列連接到SQL Server

回答

1

,用你的模型擁有的NotMapped屬性。

class Example { 
    public Guid Id { get; set; } 
    [NotMapped] 
    public string TextToShow { get; set; } 
} 
+0

我不希望它忽略屬性的整個值。正如我上面提到的,該屬性是一個名爲DualItem的自定義對象,它具有兩個字段:ID和TextToShow。我想要的是保存ID的值,並忽略TextToShow的值,因爲它將在從數據庫中檢索時手動分配。你有沒有想過任何解決方案? 謝謝, –

+0

我不明白你在問什麼。你只更新一次'TextToShow',或者什麼? – will

+0

這是一個想法。我正在開發一個雙語應用程序。讓我們說我有一個GENDER列。在編程界面中我有兩個選項[male = 0,female = 1],但用戶看到的文本是根據他/她的語言偏好從另一個表中檢索的。 所以我不會在數據庫中存儲TextToShow,因爲它總是在變化。 將嘗試你提到的方法,並會回覆給你。 Thnaks –

0

發現的解決方案: 1)我改ID字段的名稱到別的東西讓EF將其識別爲關鍵。標記TextToShow

2)爲[NotMapped]

其結果是:ID字段[其中已被重新命名]的只使用該值被存儲在數據庫中。

*

將會繼續保持該會話開放的人誰面臨同樣的問題

    *
0

如果我得到它的權利,你需要的是一個Complex Type它應該用EF Designer輕鬆設置。或者,如果您使用代碼優先方法,您可以檢查this blog post by Brady Holt

一旦你添加複雜類型標記你想忽略的字段[NotMapped]屬性

+0

是的,這是我正在尋找。我以[NotMapped]標記了我沒有存儲在數據庫中的字段,並且它工作正常。 –

相關問題