显然,相同的列值类型因环境而异,对于同一个数据库实体(表)和他们拒绝更新为普通类型 - 不要问为什么!
我正在使用Entity Framework(版本6.1.3)和工作单元进行数据访问。而且,正如你可以猜到的那样,因为DEV& QA数据库定义与同一列不匹配。
好消息:
我们不保存到这些特定的表中 - 我们只查询那些特定的表。
样本模型:
显然列数多于此。
public partial class Transactions
{
[Key]
public int TransactionId { get; set; }
public float Amount { get; set; } //<-- This type differs between database environments
}
我的问题:
最佳 - 并且要清楚:
我想具体定义属性,并有实体框架&#34;转换&#34;来自未知类型&amp;进入混凝土类型 - 但是在引擎盖下。
感谢任何帮助。
答案 0 :(得分:0)
如果列的类型兼容(即所有数字),则可以在类上具有公共类型,然后禁用模型检查(和迁移)。此解决方案可以在某些DBMS上运行,而不在某些其他DBMS上运行(取决于提供商)。
您可以使用强制转换编写视图并将其映射到模型中(而不是表格)。
您可以使用EF编写直接查询(官方文档https://msdn.microsoft.com/en-us/data/jj592907.aspx,类似于Dapper解决方案,具有相同的优点和缺陷,在您的情况下,延迟加载将无效)。