小编Mik*_*ike的帖子

如何使用Sql Server解决EF 6中不受支持的DateTimeOffsets问题?

当我尝试实例化DbContext时,我收到此消息:

System.NotSupportedException:没有与原始类型"DateTimeOffset"的概念边类型"DateTimeOffset"对应的商店类型.

我在SQL Server上使用Entity Framework版本6.

DbContext(带有抛出异常的行)的构造函数如下所示:

    internal TestHubContext(string connectionStringName) : base(connectionStringName)
    {
        var objectContext = (this as IObjectContextAdapter).ObjectContext;

        ...
    }
Run Code Online (Sandbox Code Playgroud)

使用代码优先创建实体,如下所示:

public class Order
{
    [Key]
    [Required]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public System.Guid Id { get; set; }

    [MaxLength(60)]
    [Required]
    public string CreatedBy { get; set; }

    [Required]
    public System.DateTimeOffset CreatedUtcDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

数据库迁移运行正常并生成如下表:

CREATE TABLE [dbo].[Orders](
[Id] [uniqueidentifier] NOT NULL,   
[CreatedBy] [nvarchar](60) NOT NULL,
[CreatedUtcDate] [datetimeoffset](7) NOT NULL,  
Run Code Online (Sandbox Code Playgroud)

因此数据库和C#代码中存在相关的数据类型.关于为什么会这样,我有点失落.

这是我得到的堆栈跟踪:

System.Data.Entity.ModelConfiguration.Edm.Services上的System.Data.Entity.SqlServer.SqlProviderManifest.GetStoreType(TypeUsage edmType)中的System.Data.Entity.SqlServer.SqlProviderManifest.GetStorePrimitiveTypeIfPostSql9(String storeTypeName,String nameForException,PrimitiveTypeKind primitiveTypeKind) System.SData.Entity.ModelConfiguration上的System.Data.Entity.ModelConfiguration.Edm.Services.PropertyMappingGenerator.Generate(EntityType entityType,IEnumerable 1 …

.net c# datetimeoffset entity-framework-6

1
推荐指数
1
解决办法
1842
查看次数

标签 统计

.net ×1

c# ×1

datetimeoffset ×1

entity-framework-6 ×1