Pap*_*ndy 5 sql-server ctp entity-framework-4
我正在使用Entity Framework 4和CTP 4,到目前为止我真的很喜欢它.当我使用Windows身份验证连接到数据库时,我可以正常工作,但当我切换到SQL身份验证时,它失败并显示以下消息.我给了用户一个sysadmin角色,它的默认数据库是master.
错误:
此操作需要连接到"主"数据库.无法创建与"主"数据库的连接,因为已打开原始数据库连接并且已从连接字符串中删除凭据.提供未打开的连接.
有任何想法吗?
......更多错误细节:
[InvalidOperationException: This operation requires a connection to the 'master' database. Unable to create a connection to the 'master' database because the original database connection has been opened and credentials have been removed from the connection string. Supply an unopened connection.]
System.Data.SqlClient.SqlProviderServices.UsingMasterConnection(SqlConnection sqlConnection, Action`1 act) +344
System.Data.SqlClient.SqlProviderServices.DbDatabaseExists(DbConnection connection, Nullable`1 commandTimeout, StoreItemCollection storeItemCollection) +231
System.Data.Objects.ObjectContext.DatabaseExists() +84
System.Data.Entity.Internal.DatabaseOperations.Exists(ObjectContext objectContext) +9
System.Data.Entity.Infrastructure.Database.Exists() +53
System.Data.Entity.Infrastructure.RecreateDatabaseIfModelChanges`1.InitializeDatabase(TContext context) +129
System.Data.Entity.Infrastructure.<>c__DisplayClass2`1.<SetInitializer>b__0(DbContext c) +75
System.Data.Entity.Infrastructure.Database.Initialize() +207
System.Data.Entity.Internal.InternalContext.Initialize() +70
System.Data.Entity.Internal.LazyInternalContext.get_ObjectContext() +9
System.Data.Entity.Internal.InternalContext.TryUpdateEntitySetMappingsForType(Type entityType) +51
System.Data.Entity.Internal.InternalContext.UpdateEntitySetMappingsForType(Type entityType) +17
System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +24
System.Data.Entity.Internal.Linq.EfInternalQuery`1.Initialize() +62
System.Data.Entity.Internal.Linq.EfInternalQuery`1.get_Provider() +9
System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider() +13
System.Linq.Queryable.Select(IQueryable`1 source, Expression`1 selector) +63
Run Code Online (Sandbox Code Playgroud)
这对我有用。
Database.SetInitializer<YourDbContext>(null);
Run Code Online (Sandbox Code Playgroud)
感谢http://social.msdn.microsoft.com/Forums/en/adonetefx/thread/870959ef-5c06-4c3e-b9f8-454346592280