我在ASP.NET MVC 4中有一个项目,我正在使用Entity Framework 6.0.2来实现数据持久性.创建所有实体("模型")后,使用数据注释,我使用"迁移"创建包,但在SQL Server 2012中数据库不是criano之后,显示Nuget消息"Sequence contains no matching element"
已配置"连接字符串",并且SQL Server 2012处于活动状态.
我使用了命令:
PM> Enable-Migrations PM>Checking if the context targets an existing database... System.InvalidOperationException: Sequence contains no matching element at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source, Func`2 predicate) at System.Data.Entity.Utilities.DbProviderManifestExtensions.GetStoreTypeFromName(DbProviderManifest providerManifest, String name) at System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration.Configure(EdmProperty column, EntityType table, DbProviderManifest providerManifest, Boolean allowOverride, Boolean fillFromExistingConfiguration) at System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration.<>c__DisplayClass1.b__0(Tuple`2 pm) at System.Data.Entity.Utilities.IEnumerableExtensions.Each[T](IEnumerable`1 ts, Action`1 action) at System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive.PrimitivePropertyConfiguration.Configure(IEnumerable`1 propertyMappings, DbProviderManifest providerManifest, Boolean allowOverride, Boolean fillFromExistingConfiguration) at System.Data.Entity.ModelConfiguration.Configuration.Types.StructuralTypeConfiguration.ConfigurePropertyMappings(IList`1 propertyMappings, DbProviderManifest providerManifest, Boolean allowOverride) at System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration.ConfigurePropertyMappings(DbDatabaseMapping databaseMapping, EntityType entityType, DbProviderManifest providerManifest, Boolean allowOverride) at System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration.Configure(EntityType entityType, DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest) at System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.ConfigureEntityTypes(DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest) at System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.Configure(DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest) at System.Data.Entity.DbModelBuilder.Build(DbProviderManifest providerManifest, DbProviderInfo providerInfo) at System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection) at System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext) at System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input) at System.Data.Entity.Internal.LazyInternalContext.InitializeContext() at System.Data.Entity.Internal.LazyInternalContext.get_ModelBeingInitialized() at System.Data.Entity.Infrastructure.EdmxWriter.WriteEdmx(DbContext context, XmlWriter writer) at System.Data.Entity.Utilities.DbContextExtensions.<>c__DisplayClass1. b__0(XmlWriter w) at System.Data.Entity.Utilities.DbContextExtensions.GetModel(Action`1 writeXml) at System.Data.Entity.Utilities.DbContextExtensions.GetModel(DbContext context) at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration, DbContext usersContext) at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration) at System.Data.Entity.Migrations.Design.MigrationScaffolder..ctor(DbMigrationsConfiguration migrationsConfiguration) at System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.Run() at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner) at System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldInitialCreate(String language, String rootNamespace) at System.Data.Entity.Migrations.EnableMigrationsCommand.<>c__DisplayClass2.<.ctor>b__0() at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) Sequence contains no matching element
gabrielhws.. 5
首先想到的是Visual Studio中的错误,甚至是实体框架安装的类或引用.唯一的问题是,"DOUBLE"属性.使用了错误的符号.例如:而不是使用:
[Required(ErrorMessage = "Informe a Nota do Aluno")] [Column("NotaAluno", TypeName = "Decimal(3,2)")] [DisplayName("Nota do Aluno:*")] public Double dNotaAluno { get; set; }
用这个:
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true, NullDisplayText = "Sem Nota")] [Range(0, 100, ErrorMessage = "A nota deverá ser entre 0 a 100.")] [Required(ErrorMessage = "Informe a Nota do Aluno")] [Column("NotaAluno", TypeName = "decimal")] [DisplayName("Nota do Aluno:*")] public decimal dNota { get; set; }
小问题,在创建类时缺乏关注并尊重SQL Server的原始类型.谢谢.
首先想到的是Visual Studio中的错误,甚至是实体框架安装的类或引用.唯一的问题是,"DOUBLE"属性.使用了错误的符号.例如:而不是使用:
[Required(ErrorMessage = "Informe a Nota do Aluno")] [Column("NotaAluno", TypeName = "Decimal(3,2)")] [DisplayName("Nota do Aluno:*")] public Double dNotaAluno { get; set; }
用这个:
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true, NullDisplayText = "Sem Nota")] [Range(0, 100, ErrorMessage = "A nota deverá ser entre 0 a 100.")] [Required(ErrorMessage = "Informe a Nota do Aluno")] [Column("NotaAluno", TypeName = "decimal")] [DisplayName("Nota do Aluno:*")] public decimal dNota { get; set; }
小问题,在创建类时缺乏关注并尊重SQL Server的原始类型.谢谢.