如何处理可能是int或long的实体框架代码第一列

时间:2013-10-10 15:09:26

标签: entity-framework ef-code-first

我们为第三方应用程序创建和管理的许多表编写了实体框架CodeFirst映射。他们最近将这些表中的一些列从SQL数据类型INT升级到BIGINT。

我能想到实现这一目标的唯一方法是拥有两个独立的数据库模型,一个用于旧版本,一个用于新版本,但我想知道是否有办法将.net中的字段视为很久,然后在它尝试读取旧样式数据库格式或从旧样式数据库格式读取它自动将其转换为/从int?

感谢。

1 个答案:

答案 0 :(得分:1)

编程中的大多数问题都可以通过另一层抽象来解决,这也不例外。

如果您在数据库中拥有CREATE VIEW权限,最简单的解决方案是抽象出视图后面的表,在所有情况下将列转换为BIGINT。所有应用程序都必须知道这个视图,并且您的代码优先模型只是变成long的模型。您仍然可以使用视图执行所有CRUD操作 - 前提是您不会溢出小尺寸字段。