如何使用数据库优先排除EF6中的某些列?

时间:2016-07-18 20:59:31

标签: c# sql-server entity-framework-6 ef-database-first

我正在开发一个项目,它有一个相当复杂的数据库,代码是止损,而另一个系统大修正在进行中。

我正在修复一些遗留代码,需要尽快执行工作并尽可能使用解决方法。

现有数据库,我正在使用EF6 Datbase First取得了很大的成功。

但是,我发现了各种情况(现在是我的第4个),我的代码中不需要特定的列,而EF正在绊倒类型转换问题。

我发现快速解决方案(我的客户首选)只是从EF模型中删除这些列 - 我在“从数据库更新”后手动执行这些操作 - 每次修复视图时都必须这样做或桌子等。

有没有办法可以某种方式指示EF“从数据库更新”操作忽略某些列?

我已经在Code First中看到了这一点 - 其中可以重写OnModelCreating以设置ignore属性 - 或者在现有属性中添加类似属性以通知EF何时忽略某些属性。

我曾考虑使用部分类 - 在子文件夹中的.cs文件中定义,我可以在其中放置一些代码来导致这种情况发生 - 但是我无法对属性进行注释 - 因为它将被定义两次 - 一次进入我的部分,以及T4模板生成的.cs中的一个。

我一直在网上寻找一种技术来管理这个,我还没有找到任何东西。

例如:

数据库有表X,Column1,Column2,Column3。

从数据库更新将为表X创建实体模型,包含所有3列。

从数据库更新后,我可以删除“Column2”引用,一切都很好 - 模型类上没有Column2属性,我的代码根本不会引用Column2中的任何数据。

我正在寻找的东西是我可以放在某个地方 - 在数据库中,EF模型,或每次从数据库进行更新时都不会覆盖的部分类。

有什么建议吗?

0 个答案:

没有答案