gpt4 book ai didi

entity-framework - Entity Framework 4 将 DateTimeOffset 映射到 Visual Studio 2010 中的 SQL 日期时间

转载 作者:行者123 更新时间:2023-12-05 00:06:56 26 4
gpt4 key购买 nike

我将 Visual Studio 2010 RTM 与 .NET/Entity Framework 4 RTM 与模型驱动设计方法一起使用。
当我创建一个带有 DateTimeOffset 字段的实体时,EF 建模器会尝试将 DateTimeOffset 映射到 SQL 日期时间而不是 SQL 日期时间偏移。
我使用的是 SQL Server 2008 Express,因此数据库中支持 datetimeoffset。

Visual Studio 出现此错误:

Error 2019: Member Mapping specified is not valid. The type 'Edm.DateTimeOffset[Nullable=False,DefaultValue=,Precision=]' of member 'Created' in type 'Data.SqlStorage.MyType' is not compatible with 'SqlServer.datetime[Nullable=False,DefaultValue=,Precision=3]' of member 'Created' in type 'Data.SqlStorage.Store.MyTypes



如果我直接在 EDMX StorageModels xml 部分编辑类型,则会收到以下错误:

Error 40: The Type datetimeoffset is not qualified with a namespace or alias. Only PrimitiveTypes can be used without qualification.



为什么建模者不能正确地将它映射到 SQL datetimeoffset 类型?
当我仍在使用 Visual Studio 2010 和 .NET framework 4 的测试版时,也会出现这个问题。

最佳答案

在 RTM 版本中,您可以在 DbContext 中执行以下操作:

 protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Entity<EntityName>().Property(p => p.PropertyName).HasColumnType("datetimeoffset");
}

这对于告诉 Entity Framework Code First 在生成数据库时使用 datetime2 而不是 datetime 也很有用。

关于entity-framework - Entity Framework 4 将 DateTimeOffset 映射到 Visual Studio 2010 中的 SQL 日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2645010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com