1

好吧,我定義了我的根。根內的實體允許引用同一根內的其他實體,但不在外部。在那裏他們只能擁有身份或相關實體。這非常棒。DDD,EF和參照完整性

但是,我使用EF5和導航屬性越來越多。我真的只想定義導航屬性的實體是在聚合內。但是,如何在相關實體處於不同集合中時應用一些參照完整性?是使用遷移手動添加FK的唯一選擇嗎?

再一次,但是...這將導致一些問題,因爲我希望能夠使用ReadOnlyRepositories從各處獲取聚合數據。我不想進入CQRS,因爲我感覺有太多的飛躍。我堅持需要第二個有界的上下文與一個新的集(或可能派生集)的實體額外的導航屬性定義?所有我可以編寫查詢來從多個根中獲取數據?

+0

CQRS意味着一個大飛躍?爲了大聲哭泣,它只是意味着除了域模型之外還有一個讀取模型。 – MikeSW 2013-05-03 13:30:51

+1

既然你的數據庫負責參照完整性,你能不能簡單地忽略EF模型中的關係?因此,在數據模型中也無法導航。 – 2013-05-04 08:18:50

回答

1

需要引用完整性通常表示更深層次的問題。爲什麼你需要在兩個表中都存在實體標識符?這種方式是一致的嗎?爲什麼沒有明確的模型?這些問題不像答案那麼重要。也意識到通過在相同的數據庫模式(和適當的索引)上使用其他技術,您的許多問題可能會消失。誰知道,你可能在那個時候正在做CQRS。