0

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 を開いて Advert の TableData を表示すると、Advert と User と Competition の間に接続があることがわかります (フィールド CompetitionId と UserId は空ではありません)。テーブル AdvertTags には Adverts と Tags のキーが含まれています.name (モデルは広告) フィールドは空です (タグと競合の場合も同じ)

たとえば、コントローラーでこれを行う場合:

Advert advert = db.Adverts.Find(id);

        if (advert == null)
        {
            return HttpNotFound();
        }

View で model => model.User.Name を実行し、アプリケーションを実行すると、ユーザー名フィールドには何も表示されません。

しかし、すべての広告を反復してスムーズに書くと。このような。

database.Adverts.Include(a => a.User).Include.(a => a.Competition)
           .Include(a => a.WhoWhoAmILookingForTags)

すべてが正常に表示されます。

私が十分に明確だったことを願っています。

4

0 に答える 0