我刚读过this nice article,它教我如何使用继承(Table-per-hirarchy)。
我想知道,说我有一个需要在子类中使用的专栏'HireDate'。 可以肯定的是,在DB中它必须标记为可为空,但是如何在EDM中将其标记为不可为空? 我试图将它设置为不可空,但后来它说它需要一个默认值,我希望默认值是DateTime.Now,而不是一个常量值。
答案 0 :(得分:0)
如果在派生类型上声明了属性(如HireData)并且您正在使用TPH,那么您绝对应该能够在EDM中将其标记为不可为空,尽管它在数据库中可以为空。
事实上,这种能力是TPH的特征之一。
...
所以我查看了有问题的博客帖子,发现它有问题,因为它将鉴别器列(PersonCategory
)公开为基本实体的属性,如果允许则会生成实体的类型可变,因为你可以很容易地做到这一点:
student.PersonCategory = 2;
哪会让学生成为管理员! EF不允许这样做。
因此,如果您密切关注这个可能是您的问题的例子。
保存鉴别器的列不应映射到EDM中的属性,它只应用于映射(即映射窗口中“映射到XXX”下的“添加条件”)。
解决Blog Post中的问题:从Person类中删除PersonCategory属性。
无论如何,我希望这有帮助
亚历