4
实体框架在使用SQL Express时不会创建我的数据库,但如果我使用SQL Server CE,则它工作正常。实体框架在使用sqlserver时不创建数据库
我一直试图弄清楚这几天,但它可能是我对ASP.NET和MVC的经验不足。
ConnectionStrings:
<connectionStrings>
<!--
<add name="CRM"
connectionString="data source=|DataDirectory|CRM.sdf"
providerName="System.Data.SqlServerCe.4.0" />-->
<add name="CRM"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\CRM.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
堆栈跟踪:
System.InvalidOperationException was caught
Message=Unable to complete operation. The supplied SqlConnection does not specify an initial catalog.
Source=System.Data.Entity
StackTrace:
at System.Data.SqlClient.SqlProviderServices.GetDatabaseName(SqlConnection sqlConnection)
at System.Data.SqlClient.SqlProviderServices.DbCreateDatabase(DbConnection connection, Nullable`1 commandTimeout, StoreItemCollection storeItemCollection)
at System.Data.Objects.ObjectContext.CreateDatabase()
at System.Data.Entity.Internal.DatabaseOperations.Create(ObjectContext objectContext)
at System.Data.Entity.Database.Create()
at System.Data.Entity.CreateDatabaseIfNotExists`1.InitializeDatabase(TContext context)
at System.Data.Entity.Internal.InternalContext.<>c__DisplayClass5.<PerformDatabaseInitialization>b__3()
at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action)
at System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization()
at System.Data.Entity.Internal.LazyInternalContext.<InitializeDatabase>b__4(InternalContext c)
at System.Data.Entity.Internal.RetryAction`1.PerformAction(TInput input)
at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action`1 action)
at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase()
at System.Data.Entity.Internal.InternalContext.Initialize()
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
at System.Data.Entity.Internal.Linq.InternalSet`1.ActOnSet(Action action, EntityState newState, Object entity, String methodName)
at System.Data.Entity.Internal.Linq.InternalSet`1.Add(Object entity)
at System.Data.Entity.DbSet`1.Add(TEntity entity)
at MvcApplication1.Controllers.CustomerController.Create(Customer customer) in C:\Users\hlcole\Documents\RegProjects\MvcApplication1\MvcApplication1\Controllers\CustomerController.cs:line 55
InnerException:
另请参阅http://stackoverflow.com/questions/4116994/sql-express-connection-string-for-entity-framework-code-first –
哇!这工作!谢谢!我很惊讶,因为我没有看到任何包括成员资格连接字符串的例子。十分感谢你的帮助! – user1658921
有关其他信息,虽然您提供了一个mdf文件,但SQLEXPRESS仍然需要知道应该将哪个数据库视为该文件(为了这个和将来的参考)。 –