如何强制EF Core为单个属性处理多个SQL数据类型?目标是处理处理相同类型事物但不统一的多个客户端数据库。是否有强制EF Core忽略SQL数据类型的方法
采取以下措施,这似乎只有在客户端数据库具有十进制兼容数据类型时才起作用。
Public Property PieceThickness As Decimal
Get
PieceThickness = _pieceThickness
End Get
Set(value As Decimal)
_pieceThickness = value
End Set
End Property
但是,有些客户端将有一个PieceThickness作为varchar(9)。因此抛出一个错误,即使我手动映射列。
modelBuilder.Entity(Of MailPiece)().Property(Function(t) t.PieceThickness).
HasColumnName("Thickness").HasColumnType("varchar(9)")
“的一个例外,而读财产‘MailPiece.PieceThickness’数据库值发生。期望的类型是‘System.Nullable`1 [System.Decimal]’,但实际值类型的“系统。串'。”
我明显可以有PieceThickness的另一个字符串属性,但如果可能的话,要避免这种情况。使属性成为对象也不起作用。
我明白模型需要完全匹配数据库,但我希望有一个工作。
编辑:我觉得这个最好的办法来处理这种情况是使用工厂模式或提供者工厂:http://www.dofactory.com/net/design-patterns
这样做,我会产生水垢能够解决方案,可以从规范分歧在客户端上以客户为基础。
解决此问题将有助于解决此问题。 https://开头github上。com/aspnet/EntityFramework/issues/242 – Smit