Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 如何处理可以是int或long的Entity Framework CodeFirst列_Entity Framework_Ef Code First - Fatal编程技术网

Entity framework 如何处理可以是int或long的Entity Framework CodeFirst列

Entity framework 如何处理可以是int或long的Entity Framework CodeFirst列,entity-framework,ef-code-first,Entity Framework,Ef Code First,我们已经为许多由第三方应用程序创建和管理的表编写了一个实体框架CodeFirst映射。他们最近将这些表中的许多列从SQL数据类型INT升级为BIGINT 我能想到的实现这一点的唯一方法是拥有两个独立的数据库模型,一个用于旧版本,一个用于新版本,但我想知道是否有一种方法可以将.net中的字段视为一个长字段,然后,如果它试图读取或从旧式数据库格式读取数据,它会自动将数据转换为int或int 谢谢。编程中的大多数问题都可以通过另一层抽象来解决,这也不例外 如果您在数据库中具有“创建视图”权限,最简单的

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

我能想到的实现这一点的唯一方法是拥有两个独立的数据库模型,一个用于旧版本,一个用于新版本,但我想知道是否有一种方法可以将.net中的字段视为一个长字段,然后,如果它试图读取或从旧式数据库格式读取数据,它会自动将数据转换为int或int


谢谢。

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


如果您在数据库中具有“创建视图”权限,最简单的解决方案是抽象出视图后面的表,在所有情况下将列强制转换为
BIGINT
。应用程序需要注意的就是这个视图,代码优先的模型将变成具有
long
的模型。您仍然可以使用视图执行所有CRUD操作,当然前提是不会溢出小尺寸字段。

您可以在数据库中创建视图吗?可以。这当然是有可能的。那么最简单的解决方案可能是将表抽象到视图后面,在这两种情况下都将其转换为bigint。如果您将此作为答案,我接受。谢谢。不幸的是,这不起作用。我无法更新任何应用了强制转换函数的列。有办法解决这个问题吗?嗯,我想没有:(.你能用存储过程代替吗?