Entity framework 具有两个属性的EF多对多
我有一个示例代码:Entity framework 具有两个属性的EF多对多,entity-framework,entity-framework-4.1,Entity Framework,Entity Framework 4.1,我有一个示例代码: public class Tag { public int TagId { get; set; } public virtual ICollection<User> Users { get; set; } } public class User { public int UserId { get; set; } public virtual ICollection<Tag> Tags { get; set; } }
public class Tag
{
public int TagId { get; set; }
public virtual ICollection<User> Users { get; set; }
}
public class User
{
public int UserId { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
}
公共类标记
{
public int TagId{get;set;}
公共虚拟ICollection用户{get;set;}
}
公共类用户
{
public int UserId{get;set;}
公共虚拟ICollection标记{get;set;}
}
当我在我的模型上运行EF时(我使用代码优先的方法),我会在数据库中自动创建一些表:
Users
Tags
UserTagUsers <-- junction table for many-to-many relationship
用户
标签
UserTagUsers使用fluent API配置映射
modelBuilder.Entity<User>()
.HasMany(u => u.Tags).WithMany(t => t.Users)
.Map(m =>
{
m.ToTable("UserTags");
m.MapLeftKey("UserId");
m.MapRightKey("TagId");
});
modelBuilder.Entity<User>()
.HasMany(u => u.Tags2).WithMany(t => t.Users2)
.Map(m =>
{
m.ToTable("UserTags2");
m.MapLeftKey("UserId");
m.MapRightKey("TagId");
});
modelBuilder.Entity()
.HasMany(u=>u.Tags)。WithMany(t=>t.Users)
.Map(m=>
{
m、 ToTable(“用户标签”);
m、 MapLeftKey(“用户ID”);
m、 MapRightKey(“TagId”);
});
modelBuilder.Entity()
.HasMany(u=>u.Tags2)。WithMany(t=>t.Users2)
.Map(m=>
{
m、 ToTable(“UserTags2”);
m、 MapLeftKey(“用户ID”);
m、 MapRightKey(“TagId”);
});
modelBuilder.Entity<User>()
.HasMany(u => u.Tags).WithMany(t => t.Users)
.Map(m =>
{
m.ToTable("UserTags");
m.MapLeftKey("UserId");
m.MapRightKey("TagId");
});
modelBuilder.Entity<User>()
.HasMany(u => u.Tags2).WithMany(t => t.Users2)
.Map(m =>
{
m.ToTable("UserTags2");
m.MapLeftKey("UserId");
m.MapRightKey("TagId");
});