0

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

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

谢谢。

4

1 回答 1

1

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

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

于 2013-10-10T15:29:14.317 回答