0

以下のコードの違いは何ですか?

 public class Album
{
    public int Id { get; set; }
    public string Title { get; set; }
    public List<Gener> Gener { get; set; }
}

public class Gener
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Albumcontext:DbContext
{
    public DbSet<Album> Albums { get; set; }
    public DbSet<Gener> Geners { get; set; }
}

ここに画像の説明を入力

 public class Album
{
    public int Id { get; set; }
    public string Title { get; set; }
    public Gener Gener { get; set; }
}

public class Gener
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Albumcontext:DbContext
{
    public DbSet<Album> Albums { get; set; }
    public DbSet<Gener> Geners { get; set; }
}

ここに画像の説明を入力

リレーション 2 エンティティはコード 2 を使用する必要があることはわかっていますが、List<> または Collection<> を使用するにはどうすればよいですか?
私の悪い英語でごめんなさい

4

3 に答える 3

1

Album最初の1つは、「1つは多くを持つことができます」という関係をGenres作成し、2つ目は、「1つAlbumだけを持つことができますGenreが、1つGenreは多くとリンクする可能性があります」を作成しAlbumsます。

あなたの例を見ると、多対多の関係が必要でAlbumあり、1つまたは複数の関係があり、1つまたは複数のにリンクされている可能性がありGenresます。GenreAlbums

于 2013-02-11T12:50:37.243 に答える
1

クラスの最初のブロックでは、オブジェクトのリストでAlbumあるプロパティを作成します。GenerGenerAlbumGeners

public List<Gener> Gener { get; set; }

同じクラスの 2 番目のブロックにGenerは、 type のプロパティがあるGenerため、 class の 1 つのオブジェクトのみを指しますGenerAlbumこれは、1 つが必要であることを意味しますGener

public Gener Gener { get; set; }

ところで、クラス名にタイプミスがあります-GenerではなくGenreが必要だったと思います。

編集:

Entity Framework でリレーションシップを定義する方法の詳細については、この記事を参照してください

于 2013-02-11T12:52:52.313 に答える
0

最初の例では、 と の間に多対 1 の関係がAlbumありGenerます。それぞれGenerが 1 つだけにリンクされているため、外部キーを に取得しAlbumます 。GenerAlbum

2番目の関係は1対1の関係であり、モデルGener内のオブジェクトへの参照があるため、への外部キーを取得します。AlbumAlbumGener

于 2013-02-11T12:51:31.500 に答える