我有3个表:用户,组织,角色。如何首先使用ef核心代码定义它们之间的关系?例如,用户可以是多个组织的总裁。
编辑:对于那些还不够明显的问题:我了解O2M和M2M方法,但是在这种情况下,我想确保特定用户及其角色仅适用于特定组织。因此,例如,User1可以是Org1,Org2的总裁,但可以是Org3的看门人,而在Org4中没有任何角色。
答案 0 :(得分:0)
考虑以下是用户,组织和角色的模型
public class User {
public int Id { get; set; }
// Other properties
}
public class Organization {
public int Id { get; set; }
// Other properties
}
public class Role {
public int Id { get; set; }
// Other properties
}
如果情况是这样的(组织中的用户最多只能在该组织中扮演一个角色),则可以通过创建一个新模型来关联这三个模型。
public UserOrganizationRole {
public int Id { get; set; }
// Other properties if you want
public int UserId { get; set; }
public int OrganizationId { get; set; }
public int RoleId { get; set; }
public User User { get; set; }
public Organization Organization { get; set; }
public Role Role { get; set; }
}
或创建2个模型,一个模型将用户和组织关联为M2M,即UserOrganizations,另一个模型将UserOrganizations和Roles关联为M2M
public UserOrganization {
public int Id { get; set; }
// Other properties if you want
public int UserId { get; set; }
public int OrganizationId { get; set; }
public User User { get; set; }
public Organization Organization { get; set; }
}
public UserOrganizationRole {
public int Id { get; set; }
// Other properties if you want
public int UserOrganizationId { get; set; }
public int RoleId { get; set; }
public UserOrganization UserOrganization { get; set; }
public Role Role { get; set; }
}