EF只有很多问题:( 一切都适用于我的模型,但在添加这行代码之前,我无法对多个实体执行CRUD
modelBuilder.Entity<Advert>()
.HasMany(a => a.WhoAmILookingForTags)
.WithMany(a => a.Adverts)
.Map(at =>
{
at.ToTable("AdvertTags");
at.MapLeftKey("AdvertId");
at.MapRightKey("TagId");
});
广告也与竞争和用户相关
modelBuilder.Entity<Advert>().HasRequired(u => u.User);
modelBuilder.Entity<Advert>().HasRequired(c => c.Competition);
当我打开ServerExplorer并查看广告的TableData时,我发现广告与用户和竞争之间存在连接(字段CompetitionId和UserId不为空) 表AdvertTags包含广告和标签的键 但是在View中我尝试显示model.user.name(正在广告的模型)字段为空(标签和竞争相同)
例如,在控制器中,我这样做:
Advert advert = db.Adverts.Find(id);
if (advert == null)
{
return HttpNotFound();
}
在视图中我做模型=&gt; model.User.Name和run application nothing显示在字段User Name。
中但是,当我迭代所有广告并写入smth时。像这样。
database.Adverts.Include(a => a.User).Include.(a => a.Competition)
.Include(a => a.WhoWhoAmILookingForTags)
一切都很好。
我希望我足够清楚。