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)
すべてが正常に表示されます。
私が十分に明確だったことを願っています。