我正在考虑使用 EF 访问安装在我们客户系统上的旧版 SQL Server 数据库。
问题是数据库模式不是 100% 一致的:虽然它们都具有相同的(相关)表和字段,但某些数字字段可能具有不同的数据类型。
据我所知,从应用程序的角度来看,这些类型是“兼容的”:例如,包含小数字的字段可能是smallint
客户 A 的数据库中的一个,但int
客户 B 的数据库中的一个,或者包含价格的字段可能是decimal(10,2)
在 A 的数据库上,但float
在 B 的数据库上(是的,这意味着 B 可能会遇到浮点问题——毕竟它是一个遗留数据库)。
由于我们不是唯一访问数据库的人,因此更改(并因此统一)模式不是一种选择。Entity Framework 是否能够处理这个问题(即,double
如果模型定义声称它是 a ,它会优雅地接受 SQL Server 表中的 a decimal(10,2)
)还是会严重崩溃?