C# EF 4.1将复杂类型嵌套到单个字段
我似乎找不到这个问题的答案,但我正在尝试使用嵌套的复杂类型,并仅使用id将其展平到父表中 代码如下: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 {
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”);
工作起来很有魅力。非常感谢!