Sql server 是否可以映射SQL Server';是否使用实体框架将行版本类型设置为比byte[]更友好的类型?
当我在存储模型中声明SQL Server rowversion字段并让Entity Framework执行其默认映射时,rowversion字段映射到字节数组 是否可以将其映射到更友好的类型(允许从.NET端表达相等运算符和比较运算符)?鉴于rowversion的底层类型是二进制(8),我认为可以将其映射为64位整数 以下是当前使用的特性定义: SSDL:Sql server 是否可以映射SQL Server';是否使用实体框架将行版本类型设置为比byte[]更友好的类型?,sql-server,entity-framework,orm,rowversion,Sql Server,Entity Framework,Orm,Rowversion,当我在存储模型中声明SQL Server rowversion字段并让Entity Framework执行其默认映射时,rowversion字段映射到字节数组 是否可以将其映射到更友好的类型(允许从.NET端表达相等运算符和比较运算符)?鉴于rowversion的底层类型是二进制(8),我认为可以将其映射为64位整数 以下是当前使用的特性定义: SSDL: CSDL: 不幸的是,这是不可能的,因为EF没有任何类型的数据转换功能。若要使用64位整数,则仍必须映射字节数组并公开第二个将数组转换
CSDL:
不幸的是,这是不可能的,因为EF没有任何类型的数据转换功能。若要使用64位整数,则仍必须映射字节数组并公开第二个将数组转换为整数的未映射属性。您可以在应用程序中比较时间戳。不幸的是,这是不可能的,因为EF没有任何类型的数据转换功能。若要使用64位整数,则仍必须映射字节数组并公开第二个将数组转换为整数的未映射属性。关于在应用程序中比较时间戳,您有更多的了解。我使用计算列来进行比较。ISNULL
表示EF POCO将是long
而不是null
我使用一个计算列来进行此操作。
ISNULL
表示EF POCO将是long
而不是null
<Property Name="lastModifiedRowVersion" Type="timestamp" Nullable="false" StoreGeneratedPattern="Computed" />
<Property Name="LastModifiedRowVersion" Type="Binary" FixedLength="true" MaxLength="8" Nullable="false" ConcurrencyMode="Fixed" />
...
Revision ROWVERSION,
Revision64 AS ISNULL(CAST(Revision AS BIGINT), 0),
...