EF 6.0 - 将复杂类型映射到与父 属性 相同的 table
EF 6.0 - Map complex type to same table as parent property
我看过以下内容:
Entity framework code first map multiple complex types of the same type to a table
给定示例代码:
[Table("TXLifeRequest", Schema = "txlife")]
public partial class TXLifeRequest
{
public virtual OLI_LU_BOOLEAN PendingResponseOK { get; set; }
...
}
[Table("OLI_LU_BOOLEAN", Schema = "txlife")]
public partial class OLI_LU_BOOLEAN {
public string tc { get; set; }
public string Value { get; set; }
}
我想构建数据库,使 OLI_LU_BOOLEAN
不在新的 table 中,而是 TXLifeRequest
table 中的两个新列像 TXLifeRequest.PendingResponseOK_tc
和 PendingResponseOK _Value
.
现有上下文中没有流利的代码。有没有办法通过 fluent 或 attrubutes 来做到这一点,以便 class 结构完好无损,但 table 组合在一起?
更新:
我尝试了以下方法,但它为所有 OLI_LU_BOOLEAN
属性创建了一个新的 table TXLifeRequest1
。我如何将这些指定为相同 table?
的属性
modelBuilder.ComplexType<OLI_LU_BOOLEAN>()
CreateTable("imsparamed.TXLifeRequest1",
c => new
{
Id = c.Int(nullable: false, identity: true),
PendingResponseOK_Value = c.String(),
PendingResponseOK_Id = c.Int(nullable: false)
})
解决方法是创建一个复杂类型:
modelBuilder.ComplexType<OLI_LU_BOOLEAN>().Ignore(i => i.Value);
我看过以下内容:
Entity framework code first map multiple complex types of the same type to a table
给定示例代码:
[Table("TXLifeRequest", Schema = "txlife")]
public partial class TXLifeRequest
{
public virtual OLI_LU_BOOLEAN PendingResponseOK { get; set; }
...
}
[Table("OLI_LU_BOOLEAN", Schema = "txlife")]
public partial class OLI_LU_BOOLEAN {
public string tc { get; set; }
public string Value { get; set; }
}
我想构建数据库,使 OLI_LU_BOOLEAN
不在新的 table 中,而是 TXLifeRequest
table 中的两个新列像 TXLifeRequest.PendingResponseOK_tc
和 PendingResponseOK _Value
.
现有上下文中没有流利的代码。有没有办法通过 fluent 或 attrubutes 来做到这一点,以便 class 结构完好无损,但 table 组合在一起?
更新:
我尝试了以下方法,但它为所有 OLI_LU_BOOLEAN
属性创建了一个新的 table TXLifeRequest1
。我如何将这些指定为相同 table?
modelBuilder.ComplexType<OLI_LU_BOOLEAN>()
CreateTable("imsparamed.TXLifeRequest1",
c => new
{
Id = c.Int(nullable: false, identity: true),
PendingResponseOK_Value = c.String(),
PendingResponseOK_Id = c.Int(nullable: false)
})
解决方法是创建一个复杂类型:
modelBuilder.ComplexType<OLI_LU_BOOLEAN>().Ignore(i => i.Value);