实体框架代码第一个TPH其中鉴别符大于0
我正在EF4 CTP5中定义一个模型,只有当id的值大于0时,我需要映射继承的实体。代码如下所示。
public class Parent
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Child : Parent
{
public int SchoolID { get; set; }
}
在OnModelCreating方法中...
modelBuilder.Entity<Parent>().Map<Child>(
reg =>
{
reg.MapInheritedProperties();
reg.Requires("SchoolID").HasValue((int)<value greater than 0); <== Pseudo code
}).ToTable("Users");
这种事情可能吗? 如果没有,是否可以完全忽略鉴别器?
不确定'这是可能的'部分,但它闻起来有点。 我的意思是,它意味着你的数据中真正不应该有意义的含义; 您将面临长期的可维护性问题。 鉴别器不仅仅是为了帮助ORM判断哪个记录是哪种类型的,它也应该是(imo)对你处理的类型的逻辑描述,因为当人类对db运行SQL查询时。 它也可以用来帮助索引分区。 我意识到TPH有点反规范化,但你仍然希望能够设计一个良好索引的数据库与那里的数据库。
我建议让EF根据类型名称为你做鉴别器,其中iirc是默认值。
链接地址: http://www.djcxy.com/p/83235.html上一篇: Entity Framework code first TPH where discriminator is greater than 0
下一篇: ThreeJS First person camera 'resets' when moving the mouse