我正在尝试使用 3 个表(用户 - 联结表 - 语言)映射 2 种类型(用户 -> 语言),并且看起来模型构建器期望两种类型相互引用(例如 user.languagesSpoken) ,和语言。UsersSpeaking)。所以基本上我可以构建类似
的东西
modelBuilder.Entity<User>().HasMany(x=>x.LanguagesSpoken).WithMany(x=>x.UsersSpeaking)
。
然而,我不需要从语言到用户的引用 - 并且无法弄清楚如何映射它..
另外,有没有办法指定连接表名称?
谢谢!
最佳答案
下面的方法可以解决这个问题:
public class User
{
public int UserId { get; set; }
public virtual ICollection<Language> LanguagesSpoken { get; set; }
}
public class Language
{
public int LanguageId { get; set; }
public int Name { get; set; }
}
public class Context : DbContext
{
public DbSet<User> Products { get; set; }
public DbSet<Language> Languages { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<User>()
.HasMany(x => x.LanguagesSpoken)
.WithMany()
.Map(c =>
{
c.ToTable("yourDesiredName");
});
}
}
关于entity-framework-4 - 如何在 Entity Framework CTP5中映射多对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5188958/