我无法理解如何完成以下关系:
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; }
}
这是可以通过逆属性来完成的事情吗?我知道它们是定义相同实体之间多种关系的解决方案,但我正在努力了解如何针对我的情况进行设置。有人可以帮忙提供示例代码吗?
提前致谢。
最佳答案
除了属性注解,你还可以使用流畅的配置。它们比注释更强大、更灵活,并允许您配置相同实体之间的多种关系。
您可以在 DbContext
类的 OnModelCreating
方法中定义配置:
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);
}
关于c# - Entity Framework - 反向属性关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48550231/