2012-04-11 30 views
0

我有兩個問題。DDD型號到EF

1:目前我有被映射到兩個實體的EF圖上兩個模型類。

DDD如何與EF一起工作,因爲如果我決定將模型類拆分爲更小的特定類,例如從2到4. EF如何與他們聯繫?

我必須要創建一個單獨的DTO這四個模型類映射到兩個實體模型,EF會明白嗎?

只是想知道其他人怎麼設法解決這個問題。

2:EF只識別具有公共屬性的模型。如果我將模型類更改爲GetName(),SetName(),GetAddress()等行爲方法,並將公有屬性移除爲私有成員,那麼EF會拋出一個搖擺不定的問題,並且抱怨它無法在我的模型上找到任何屬性。 我該如何解決這個問題?或者答案與第一個問題相同,因爲我需要創建一個具有公共屬性的DTO,該公共屬性映射到EF將使用的模型類中。

我只是想,如果這是拿,因爲它似乎有點像具有我的DDD模型類映射到另一個組EF瞭解DTO或EF模型類的冗餘工作的正確路徑。 如果我必須映射到EF類,它們將在模型層還是存儲庫層?

回答

1
  1. 有可能將多個實體映射到同一個表(TPH繼承,表分割),但這些可能性必須遵循嚴格的規則。否則,您最終會遇到無法將實體插入數據庫的場景,因爲它不包含記錄的所有必需列。
  2. EF(帶EDMX)可識別non public properties as well - EF代碼拳頭至少需要屬性和可訪問的getter或setter。此外,這些行爲方法可能是多餘的,因爲在屬性中編寫自己的getter和setter具有相同的含義。