EF Code First Approach と 1:m の関係で外部キーを定義することについて混乱しています。
さまざまなチュートリアルを見ると、さまざまな方法がありますが、違いはわかりません。
2 つのモデルがProduct
ありCategory
、1 つのカテゴリに多くの製品があるとします。
public class Product
{
public int ProductId { get; set; }
public int CategoryId { get; set; }
public string Name { get; set; }
// Method 1a
public virtual ICollection<Category> Categories {get; set; }
// Method 1b
public virtual List<Category> Categories {get; set; }
// Method 1c
public Category Category {get; set; }
// Method 1d
public virtual Category Category { get; set; }
}
public class Category
{
public int CategoryId { get; set; }
public string Name { get; set; }
// Method 2a
public List<Product> Products { get; set; }
// Method 2b
public ICollection<Product> Products { get; set; }
// Method 2c
public virtual List<Product> Products { get; set; }
// Method 2d
public virtual ICollection<Product> Products { get; set; }
}
public class ExampleContext : DbContext
{
public DbSet<Product> Products { get; set; }
public DbSet<Category> Categories { get; set; }
}
ICollection
製品テーブル: /を使用しても違いはないと思いますList
が、いつ 1a/1b、1c、または 1d を使用するのですか?
ICollection
カテゴリ表: /を使用しても違いはないと思いますList
が、いつ 2a、2b、2c を使用するのですか?