如何使用E.F. Database First进行子类化

时间:2013-09-28 08:38:51

标签: c# sql entity-framework polymorphism

历史上我在我的应用程序中首先使用了数据库。如果我有一个基类和多个派生类,我的代码中最终会有很多'if'语句。

我刚刚开始使用Code First,我注意到E.F.映射回派生类的关键是使用基类Sql表中的'Discriminator'字段。

我的问题是,对于我首先使用数据库的一些现有应用程序,我如何开始以真正的OO方式创建我的POCO类?我可以将此Discriminator字段添加到数据库表中,而E.F.将为我创建我的子类吗?我想这不会起作用,因为这不足以让E.F.知道哪些字段属于哪个类。

所以也许问题变成了,有没有办法首先用数据库实现多态,或者我必须先切换到代码。如果是这种情况,是否可以先将db首先转换为代码而不丢失任何数据?

感谢。