Mik*_*ike 1 .net c# datetimeoffset entity-framework-6
当我尝试实例化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 properties, EntitySetMapping entitySetMapping, MappingFragment entityTypeMappingFragment, IList1 propertyPath,Boolean createNewColumn)中的.StructuralTypeMappingGenerator.MapTableColumn(EdmProperty属性,String columnName,Boolean isInstancePropertyOnDerivedType). System.Data.Entity.ModelConfiguration.Edm.Services.DatabaseMappingGenerator.Generate上的System.Data.Entity.ModelConfiguration.Edm.Services.DatabaseMappingGenerator.GenerateEntityTypes(DbDatabaseMapping databaseMapping)中的Edm.Services.TableMappingGenerator.Generate(EntityType entityType,DbDatabaseMapping databaseMapping) System.D上的(EdmModel conceptualModel)System.Data.Entity上的System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext)中的System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection)上的ata.Entity.DbModelBuilder.Build(DbProviderManifest providerManifest,DbProviderInfo providerInfo) System.Data.Entity.DoutContext.System.Data上的System.Data.Entity.InternalContext.ForceOSpaceLoadingForKnownEntityTypes()中System.Data.Entity.Internal.LazyInternalContext.InitializeContext()的.Internal.RetryLazy`2.GetValue(TInput输入) .Data.Entity.Infrastructure.IObjectContextAdapter.get_ObjectContext()
我将不胜感激任何解决方法的想法,而不必破解数据类型.
捂脸!此问题是由配置文件中连接字符串名称中的拼写错误引起的.
一旦我确定配置中的连接字符串的名称与提供给DbContext的连接字符串的名称匹配,问题就消失了.
当然,我没有被抛出的异常所帮助.
我在这里列出这个作为答案,以便将来的其他人可能会找到这个答案,或者至少知道这种异常可以在各种情况下抛出.
| 归档时间: |
|
| 查看次数: |
1842 次 |
| 最近记录: |