0

使用している非常に小さなオブジェクトグラフがあります。

public struct Address
{
    public string AddressLine1 { get; set; }
    public string AddressLine2 { get; set; }
    etc...
}

public class User
{
    public Address HomeAddress { get; set; }
    public Address WorkAddress { get; set; }
    public string FirstName { get; set; }
    etc...
}

Entity Framework 4.1を使用して、この構造を1つのテーブルにマップし、次のような列にマップするにはどうすればよいですか。

HomeAddressLine1
HomeAddressLine2
WorkAddressLine1
WorkAddressLine2
FirstName
LastName
etc...
4

1 に答える 1

1

EFは構造をサポートしていません。アドレスにクラスを使用し、それを複合型としてマップする必要があります。

public class Address
{
    public string AddressLine1 { get; set; }
    public string AddressLine2 { get; set; }
}

public class User
{
    public int Id { get; set; }
    public Address HomeAddress { get; set; }
    public Address WorkAddress { get; set; }
    public string FirstName { get; set; }
}


public class Context : DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    {
        modelBuilder.Entity<User>()
                    .Property(u => u.HomeAddress.AddressLine1)
                    .ColumnName("HomeAddressLine1");
        // Use the same pattern for all columns of HomeAddress and WorkAddress
    }
}
于 2012-06-13T10:04:51.700 に答える