我有一个类Tenant,它通过数据库中的TenantUser表链接到用户。这种关系很多很多,尽管我实际上只想以一种方式公开映射。
租户有一处房产
virtual ICollection<User> Users { get; set; }User类没有返回的属性映射。
是否可以使用属性或fluent API来映射租户的用户属性,以便通过TenantUser表收集特定租户的用户。
这是可能的吗,或者User类是否需要租户集合来指定任何类型的映射?
我还将(可选)拥有一个
DbSet<TenantUser> 在上下文中管理中间表,但为了方便起见,我希望可以在Tenant类上访问该属性。
谢谢。
发布于 2012-03-10 21:33:29
您可以在Fluent API中定义多对多映射,如果模型类中只公开了一个集合:
modelBuilder.Entity<Tenant>()
.HasMany(t => t.Users)
.WithMany()
.Map(x =>
{
x.MapLeftKey("TenantId");
x.MapRightKey("UserId");
x.ToTable("TenantUser");
});你不能用数据注解来定义这种关系。
请注意,在实体框架中的多对多关系中没有TenantUser实体。因此,您不能在上下文中创建DbSet<TenantUser>来管理链接表。当您通过在Tenant.Users集合中添加或删除元素来添加或删除关系时,EF会在内部管理此表。
https://stackoverflow.com/questions/9646743
复制相似问题