关于相关对象的DDD建议(C#)

DDi*_*ita 0 c# domain-driven-design

关于这个问题我很关注.保存与对象或对象关系集合相关的ID集合更好.我也计划使用存储库方法.这就是我的意思:

public class Person
{
     string PersonName {get; set;}
     List<PersonFriend> PersonFriends {get; set;}
{

or...

public class Person
{
     string PersonName {get; set;}
     List<int> PersonFriendIds {get; set;}
{
Run Code Online (Sandbox Code Playgroud)

Men*_*elt 5

与对象关系通常更好.这样你就不会强迫其他使用PersonFriends列表的类知道整个存储库的事情,让你更清楚地分离域逻辑和数据访问代码.

如果你不想将完整的朋友集合加载到内存中,那么最好不要给Person类一个PersonFriends列表,只是在存储库上实现一个GetFriendsFor(Person person)方法.

另一个解决方案是使用支持延迟加载的ORM,让您有机会按需加载好友列表.