具有共享列名的Code First Layer Per Hierarchy错误

时间:2016-02-26 17:25:58

标签: c# asp.net-mvc entity-framework ef-code-first

我有3个继承自抽象类的类,所有这些类都使用Table Per Hierarchy方法在数据库中用一个表表示。

有一个名为' foo'由两个具体类共享,但不是由第三个类共享,因此它不包含在抽象类中。

代码首次迁移尝试为共享" foo"创建两列。财产,称他们为" foo"和" foo1"即使他们都被命名为" foo"在他们各自的班级。我编辑了要删除的迁移" foo1"所以只有一列名为" foo"在db。中创建。

我可以创建包含" foo"的类的实例。财产没有问题。但是,当我尝试保存并将它们保存到数据库时,我收到一条错误,说“#34;无效的列名foo1"即使完全没有提及" foo1"我项目中的任何地方。它就像Entity框架仍然坚持做迁移最初的任何逻辑,即使我在运行迁移和创建表之前更改了它。

所以我的问题是,如何在具体类中有两个相同的列,它们的父类不共享,只能在数据库表中用一列表示?

1 个答案:

答案 0 :(得分:1)

通过使用POCO

中的列注释解决了这个问题
string