既に存在する 2 つのエンティティ間の関係を簡単に作成したいと思います。
私の場合、複数のジャンルを持つ可能性のある Album エンティティがあります(これもエンティティの束です)
私の Album モデルは次のようになります。
public class AlbumModel : IModel
{
public List<GenreModel> Genres { get; set; }
public ArtistModel Artist { get; set; }
public Guid Id { get; set; }
public string Title { get; set; }
public float Price { get; set; }
public string ArtUrl { get; set; }
}
次に、Album モデル オブジェクトと一連の GenreModel オブジェクト/エンティティ間の関係を作成したいと考えています。
「通常の」エンティティ フレームワークでは、新しい EntityKey を割り当てるだけです..しかし、最初にコードを使用してこれを行う方法がよくわかりません..また、作成したいエンティティに対して xxxxId という追加のプロパティを持っている人もいることに気付きました間の参照..次に、値を xxxxId プロパティに割り当てるだけで、エンティティ間の参照が魔法のように作成されます..これは、1対1または1対多の関係でうまく機能すると思います..しかし、私はそれを推測します多対多の関係では機能しません..または?
とにかく..これは私のGenresModelです:
public class GenreModel : IModel
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public List<AlbumModel> Albums { get; set; }
}
そして、これは私が以前に試したことです..しかし、これは関係を作成しません..データベースに追加のエンティティ/行を作成するだけです..
var artistRepository = new ArtistRepository();
var genresRepository = new GenreRepository();
#region Lordi
context.Albums.Add
(
new AlbumModel
{
Artist = artistRepository.GetByName("Lordi"),
ArtUrl = "http://upload.wikimedia.org/wikipedia/en/8/8f/The_Monster_Show.jpg",
Genres = new List<GenreModel> { genresRepository.GetByName("Rock"), genresRepository.GetByName("Hard rock") },
Id = Guid.NewGuid(),
Price = 3,
Title = "The Monster Show",
}
);
context.Albums.Add
(
new AlbumModel
{
Artist = artistRepository.GetByName("Lordi"),
ArtUrl = "http://www.nuclearblast.de/static/articles/157/157892.jpg/1000x1000.jpg",
Genres = new List<GenreModel> { genresRepository.GetByName("Rock"), genresRepository.GetByName("Hard rock") },
Id = Guid.NewGuid(),
Price = 10,
Title = "Zombilation - The Greatest Cuts",
}
);
#endregion
...そして記録のために...いいえ、私はローディを聴いていません:)..ただのダミーデータ..そして、いくつかの奇妙な不気味な理由で、ローディは頭に浮かんだ最初のバンドでした..
前もって感謝します!