2014-03-13 103 views
0

我一直在測試不同的東西,並得出結論認爲,以下錯誤是我的數據庫不會初始化並引發異常的原因。當我引用數據庫並對其進行初始化時會發生異常。你可以看到我的Web.config連接字符串正常。我正在使用實體框架6,MSSQL和C#。任何幫助,將不勝感激。如何解決數據庫初始化錯誤?

例外:

Cannot open database \"xxx\" requested by the login. The login failed.\r\nLogin failed for user 'xxxx'. 

連接字符串:

<add name="WebDBContext" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=WebDB;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/> 

代碼:

private SchoolContext db = new SchoolContext(); 

public ViewMethod Method() 
{ 
    var students = from s in db.Students select s; //EXCEPTION IS THROWN HERE 
} 
+1

「登錄失敗。\ r \ n用戶'PC \'用戶'登錄失敗」< - 非常明確 –

回答

0

你應該提useridpassword在連接字符串

<add name="WebDBContext" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=WebDB;Integrated Security=SSPI;User ID=xyz;pwd=top$secret;" providerName="System.Data.SqlClient"/> 
+0

無效。 – user3413659

0

連接字符串不是由EF要求的格式,它實際上應該看類同此:

<add name="XYZ" connectionString="metadata=res://*/ModEntity.csdl|res://*/ModEntity.ssdl|res://*/ModEntity.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=SomeServer;Initial Catalog=SomeCatalog;Persist Security Info=True;User ID=Entity;Password=SomePassword;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 
+0

不起作用.g – user3413659

+0

該類型的連接字符串首先用於模型。如果您先使用代碼,則問題中的連接字符串是正確的。 –

0

還可以使用LINQ查詢。

var students = db.Students;  

<connectionStrings> 
    <add name="WebDBContext" connectionString="metadata=res://*/Models.ModelName.csdl|res://*/Models.ModelName.ssdl|res://*/Models.ModelName.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=servername;initial catalog=databasename;user id=username;password=password;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 

將ModelName替換爲您的模型並更改您的數據庫上的連接。

相關問題