Entity Framework Core 2 – 所有型

エンティティ フレームワーク コア 2 8月14日に発売されました。新しい機能をもたらしました。

この記事では、そのうちの 1 つを説明します:所有型

以前のバージョンの Entity Framework には「複合型」という名前で存在し、その後 Entity Framework Core 1 から姿を消しました
同じ SQL テーブルに対応するエンティティに属するタイプで、同じ SQL テーブルのフィールドをグループ化したものです。

例、テーブル Person でグループ化したい プロパティ:FirstNameミドルネーム Name: という名前のサブタイプの下

このテーブルは次のようにマッピングされます:

public class Person
{
   public int BusinessEntityID { get; set; }
   public Name Name { get; set; }
}

public class Name
{
   public string FirstName { get; set; }
   public string MiddleName { get; set; }
   public string LastName { get; set; }
}

必要な構成:

主エンティティ Person で宣言する必要があります キーの場合、プロパティ FirstName、MiddleName、LastName をサブタイプ Name にマップする必要があります .

例:

public class PersonConfiguration : IEntityTypeConfiguration<Person>
{
   public void Configure(EntityTypeBuilder<Person> builder)
   {
      builder.HasKey(x => x.BusinessEntityID);
      builder.OwnsOne(x => x.Name).Property(c=> c.FirstName).HasColumnName("FirstName");
      builder.OwnsOne(x => x.Name).Property(c => c.MiddleName).HasColumnName("MiddleName");
      builder.OwnsOne(x => x.Name).Property(c => c.LastName).HasColumnName("LastName");
      builder.ToTable("Person", "Person");
   }
}

だから 個人が所有 名前

使い方:

この機能が戻ってきてうれしいですか? 🙂