如何建立这种关系的模型

时间:2018-10-23 08:32:41

标签: c# asp.net asp.net-mvc

我正在创建一个通讯应用程序,用户必须能够添加联系人。 联系人是两个用户对。

第一个问题:

我的User类中具有以下属性:

    Guid AccountId { get; set; }
    string Name { get; set; }

    List<Contact> Contacts { get; set; }
    List<Chat> Chats { get; set; }

现在我想对Contact类建模,这就是我想出的:

    Guid ContactId { get; set; }
    string Name { get; set; }

    User UserA { get; set; }
    User UserB { get; set; }

我与Contact类的问题是每个用户都有一个联系人列表。通过此联系人,一个用户可能可以访问另一用户的“联系人和聊天”。

这是一个有效的问题吗?如果是这样,如何防止这种行为发生?

第二个问题:

如何用一种更具描述性的方式命名UserA和UserB?用字母或数字来计数会觉得很脏。

1 个答案:

答案 0 :(得分:1)

您在Contacts类中创建了一个循环引用问题,我不建议这样做。 Contact类不需要具有UserA和UserB属性。 Contact类仅负责处理Contact数据:

  1. 帐户ID
  2. 名称
  3. 姓氏
  4. NickName
  5. IsBlackListed

在这种情况下,您的第二个问题不再重要,您已经执行了职责。