1

EFコードを最初に使用していて、エンティティクラスPersonをエンティティテーブルpersonTableに次のようにマップしたい場合は、

私はエンティティクラスを持っています

public class Person
{
    public Guid Id
    {
        get;
        set;
    }

    public string Email
    {
        get;
        set;
    }

    public int Property
    {
        get;
        set;
    }

    public Name Name
    {
        get;
        set;
    }
}

およびプロパティ名のタイプのクラス

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

    public string FullName
    {
        get
        {
            return string.Format("{0} {1} {2}", FirstName, MiddleName, LastName);
        }
    }

    public string LastName
    {
        get;
        set;
    }

    public string MiddleName
    {
        get;
        set;
    }
}

次のように人物クラスを人物テーブルにマッピングしたい

Person.Id => personTable.ID
Person.Name.FirstName ->personTable.FirstName
Person.Name.MiddleName => personTable.MiddleName
Person.Name.LastName => personTable.LastName
and so on....

Person.NameタイプのオブジェクトはどこですかName Class

4

1 に答える 1

0

Nameは複合型であり、EFに通知する必要があります。そうしないとName、エンティティおよびPerson.Nameナビゲーションプロパティと見なされます。Fluent APIを使用したマッピング:

modelBuilder.ComplexType<Name>();

modelBuilder.Entity<Person>()
    .Property(p => p.Name.FirstName)
    .HasColumnName("FirstName");

modelBuilder.Entity<Person>()
    .Property(p => p.Name.MiddleName)
    .HasColumnName("MiddleName");

modelBuilder.Entity<Person>()
    .Property(p => p.Name.LastName)
    .HasColumnName("LastName");
于 2012-04-28T14:35:20.897 に答える