我无法理解如何完成以下关系:
public class Organisation {
public Guid Id { get; set; }
// Have a single user as an administrator of a company
public User AdminUser { get; set; }
// All users associated with the company (including the admin)
public ICollection<User> Users { get; set;}
}
public class User {
public Guid Id { get; set; }
// Each User must be associated with an Organisation.
[ForeignKey("Organisation")]
public Guid OrganisationId { get; set; }
public Organisation Organisation { get; set; }
}
这可以通过反向属性完成吗?我知道它们是定义相同实体之间多个关系的解决方案,但我很难看到如何根据我的情况设置它。有人可以通过示例代码提供帮助吗?
提前致谢。
答案 0 :(得分:0)
除了属性注释,您还可以使用流畅的配置。它们比注释更强大,更灵活,允许您在同一实体之间配置多个关系。
您可以在OnModelCreating
课程的DbContext
方法中定义配置:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Organisation>()
.HasMany(o => o.Users)
.WithOne(u => u.Organisation);
modelBuilder.Entity<Organisation>()
.HasOne(o => o.AdminUser)
.WithOne(u => u.Organisation);
}