多对多关系
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Company>()
.HasMany(c => c.Tags)
.WithMany(t => t.Companies)
.Map(m =>
{
m.MapLeftKey("Companyid");
m.MapRightKey("tagid");
m.ToTable("CompanyTags");
}
}
添加公司
var company = new Company() { Name = "FooBar Inc" };
添加标签
int tagId = _db.Tags.Where(x => x.Title == tag).Select(x => x.Id).SingleOrDefault();
if (tagId==0)
company.Add(new Tag { Title = tag});
else
?????? //still create a relationship in CompanyTags (companyid,tagid)
context.Companies.Add(company);
context.SaveChanges();
如何配置,以便在创建新公司时以及标签是否在Tag表中退出。不要创建标记,但仍然在CompanyTags表中创建关系
UPDATE 如果没有条件,如果用户例如添加标签标题狗,如果它存在,则在标签表中创建新记录。相反,我希望在映射表中的标记表中不创建标记,请参见下面的屏幕截图
答案 0 :(得分:0)
通过实施
解决 _db.Tags.FirstOrDefault(x => x.Title == tag)
而不是做新的标签...