首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流畅的Code First EF 4.3

流畅的Code First EF 4.3
EN

Stack Overflow用户
提问于 2012-03-10 21:15:59
回答 1查看 404关注 0票数 0

我有一个类Tenant,它通过数据库中的TenantUser表链接到用户。这种关系很多很多,尽管我实际上只想以一种方式公开映射。

租户有一处房产

代码语言:javascript
复制
virtual ICollection<User> Users { get; set; }

User类没有返回的属性映射。

是否可以使用属性或fluent API来映射租户的用户属性,以便通过TenantUser表收集特定租户的用户。

这是可能的吗,或者User类是否需要租户集合来指定任何类型的映射?

我还将(可选)拥有一个

代码语言:javascript
复制
DbSet<TenantUser> 

在上下文中管理中间表,但为了方便起见,我希望可以在Tenant类上访问该属性。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-10 21:33:29

您可以在Fluent API中定义多对多映射,如果模型类中只公开了一个集合:

代码语言:javascript
复制
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会在内部管理此表。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9646743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档