设置:
Asp.NET Web Api 2(在Azure云服务中运行,3个实例(、实体框架6.1和Sql Azure
问题
我的应用程序突然开始报告大量奇怪的错误。
当使用EF从数据库中获取实体时,会报告以下类型的错误:
"无法将"{TableName}"的"{PropertyName}"属性设置为"System.String"值。必须将此属性设置为类型为"System.Int64"的非null值">
和
"无法将"{TableName}"的"{PropertyName}"属性设置为"System.Int64"值。必须将此属性设置为类型为"System.String"的非null值。">
我的解释是,与我试图映射的对象相比,数据库正在返回不匹配的对象,但我不明白为什么在数百万个请求运行良好后,这种情况会突然发生。
在我写这篇文章的时候,我重新启动了api实例,现在错误已经消失了。
如有任何帮助,我们将不胜感激。
发现可能的原因是工作单元模式的设置错误。注意:不要创建新的dbcontext来替换正在使用的dbcontext:(