2
是否可以在EF 4.1中使用复杂类型的继承TPH?EF 4.1代码具有继承性的第一种复杂类型TPH
[ComplexType]
public class Unit
{
public double Value { get; set; }
public Unit() { }
public Unit(double Value)
{
this.Value = Value;
}
}
public class Celsius: Unit
{
public Celsius(double Value) : base (Value) { }
public static explicit operator Kelvin(Celsius c)
{
return new Kelvin(c.Degrees + 273.16d);
}
[NotMapped]
public double Degrees
{
get { return this.Value; }
}
}
我在这个类相关联的一个对一使用: 当我调用()调用SaveChanges()提高异常
public class Measurement
{
[Key,
Column("Id"),
DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
public DateTime MTime { get; set; }
public Unit Value { get; set; }
}
和背景信息:
class TestContext : DbContext
{
public DbSet<Measurement> Measurements { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
try
{
modelBuilder.ComplexType<Unit>().Property(u => u.Value).HasColumnName("Value");
modelBuilder.Entity<Unit>()
.Map<Celsius>(m => m.Requires("TypeName").HasValue("Celsius"))
.Map<Kelvin>(m => m.Requires("TypeName").HasValue("Kelvin"));
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
}
首先在FE 4.1代码中使用具有继承one-table-hierarchy的复杂类型是否可能?