另一位开发人员在我们的EF模型实体(OrderItem)中添加了一个新的非null int属性(OrderItemSource)。
我们的应用程序在尝试从DB加载OrderItem时抛出异常。
[InvalidOperationException:'OrderItem'上的'OrderItemSource'属性无法设置为'String'值。您必须将此属性设置为“Int32”类型的非null值。 ]
System.Data.Common.Internal.Materialization.ErrorHandlingValueReader`1.GetValue(DbDataReader reader,Int32 ordinal)+218 ....
在应用程序端,OrderItemSource表示为枚举值,并通过以下属性用部分类抽象
public CartItem.SourceType Source
{
get { return (CartItem.SourceType)OrderItemSource; }
set { OrderItemSource = (int)value; }
}
模型看起来像这样:
<Property Name="OrderItemSource" Type="int" Nullable="false" />
<Property Type="Int32" Name="OrderItemSource" Nullable="false" />
<ScalarProperty Name="OrderItemSource" ColumnName="OrderItemSource" />
任何人都可以看到为什么这可能会抛出异常?这些类型从DB到EF和我的部分看起来都不错。
任何帮助表示感谢。
答案 0 :(得分:2)
Noob时刻 - 如果我检查了正确的数据库会很好。 数据库上的类型实际上是一个varchar,它与DB项目不同步。