C# EF 4.1将复杂类型嵌套到单个字段

C# EF 4.1将复杂类型嵌套到单个字段,c#,entity-framework-4.1,C#,Entity Framework 4.1,我似乎找不到这个问题的答案,但我正在尝试使用嵌套的复杂类型,并仅使用id将其展平到父表中 代码如下: public class Address { public virtual string Street1 { get; set; } public virtual string Street2 { get; set; } public virtual string City { get; set; } public virtual string ZipCode {

我似乎找不到这个问题的答案,但我正在尝试使用嵌套的复杂类型,并仅使用id将其展平到父表中

代码如下:

public class Address
{
    public virtual string Street1 { get; set; }
    public virtual string Street2 { get; set; }
    public virtual string City { get; set; }
    public virtual string ZipCode { get; set; }
    public virtual int Id { get; set; }
    public virtual Region Region { get; set; }
}

public class Region
{
    public virtual int Id { get; set; }
    public virtual string Code { get; set; }
}
表结构的定义如下:

CREATE TABLE [ClientManagement].[Addresses]
(
    [Id]            INT IDENTITY(1,1)   NOT NULL,
    [Street1]       [NVARCHAR](100),
    [Street2]       [NVARCHAR](100),
    [City]          [NVARCHAR](100),
    [ZipCode]       [NVARCHAR](15),
    [RegionId]      [INT]
)
是否有任何方法可以使用EF 4.1来定义这种关系

谢谢,, 德里克

试试这个:

[ComplexType]
public class Region
{
    [Column("RegionId")]
    public virtual int Id { get; set; }
    [NotMapped]
    public virtual string Code { get; set; }
}
或者在模型创建的
中:

modelBuilder.ComplexType<Region>().Ignore(r => r.Code);
modelBuilder.ComplexType<Region>().Property(r => r.Id).HasColumnName("RegionId");
modelBuilder.ComplexType().Ignore(r=>r.code);
modelBuilder.ComplexType().Property(r=>r.Id).HasColumnName(“RegionId”);

工作起来很有魅力。非常感谢!