EF很多很多奇怪的行为

时间:2013-03-18 19:47:43

标签: asp.net-mvc entity-framework many-to-many

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)

一切都很好。

我希望我足够清楚。

0 个答案:

没有答案