2011-10-27 29 views
0

在大多數情況下,我們可以將表中的字段映射到屬性,或者我們可以使用條件映射映射它,但不能同時映射它們。唯一的例外是條件設置爲Is NotNull,因爲那樣我們也可以映射到一列。我不太瞭解條件映射

a)這就是爲什麼我們只能映射一個數據庫列的原因 - 也就是說,如果允許字段同時具有屬性映射和條件映射,則屬性映射會告知EF檢索所有錶行,而條件映射會告訴EF只檢索那些滿足條件的行?!

b)如果我在a)的推理是正確的,那麼當條件設置爲Is NotNull時爲什麼字段允許同時具有映射?爲什麼不會產生衝突?

謝謝

與條件

回答

2

映射不NOTNULL具有特殊的意義,因爲它需要在你的模型後續變化。模型中的映射屬性不能爲空。因此,數據庫中的列可以爲空,映射條件將過濾所有帶有空值的記錄,並且屬性始終只接收非空值的記錄。您也永遠不能將null分配給屬性。

在價值相等的情況下,這種特殊行爲是不可能的。

+0

嗨拉迪斯拉夫。請原諒我的愚蠢,但我沒有(在你的答覆中)找到我的兩個問題的答案。如果您的回覆中有潛在的答案,您可以請重新填寫它(又名啞吧)嗎? – user702769

+1

對不起,我不確定我能否改寫它以使其更清晰。試着玩'NotNull'條件,並映射相關列,你應該看到不同之處。使用NotNull條件時不會發生衝突,因爲實體中的屬性不能爲空,因此條件映射爲第一級過濾,並且映射屬性上的任何查詢過濾只是不能與NotNull衝突的附加條件。 –

+0

「...並且映射屬性上的任何查詢過濾只是不能與NotNull衝突的附加條件。」我們不應該通過該邏輯來允許在使用Null條件時映射到列嗎? – user702769