1

我已經創建了帶有MVC模板的ASP.Net Web應用程序(.Net Framework)並安裝了EF 6最新的穩定版本。創建了一個模型和上下文類。ASP.Net核心Web應用程序(.Net Framework)問題EF代碼第一種方法

public class IAMContext: DbContext 
{ 
    public DbSet<Blog> Blogs { get; set; } 
} 
public class Blog 
{ 
    public int BlogId { get; set; } 
    public string Name { get; set; } 
} 

把下面的代碼在控制器指數方法返回在Web.config中的視圖

​​

最後連接字符串

<connectionStrings> 
<add name="IAMContext" 
connectionString="Data Source=***\SQL2016;Initial Catalog=IAM;Integrated Security=true;" 
providerName="System.Data.SqlClient"/> 

這工作得很好,創建了一個前在IAM DB中稱爲Blog。當我嘗試在ASP.Net核心Web應用程序(.Net Framework)Web API項目中做同樣的事情時,它不起作用。這裏我在appsettings.json中提供了連接字符串。其餘的代碼是相同的。

"ConnectionStrings": { 
    "IAMContext": "Server=192.168.0.3\\SQL2016;Database=IAM;Trusted_Connection=True;" 
} 

執行它是後拋出它說

而與SQL Server建立連接時出現與網絡相關的或特定於實例的錯誤的錯誤。服務器未找到或無法訪問。驗證實例名稱是否正確,並將SQL Server配置爲允許遠程連接。 (提供者:SQL網絡接口,錯誤:26 - 錯誤定位指定的服務器/實例)

感謝

+0

它無法在該地址找到數據庫。嘗試將web.config中的數據源替換爲appsettings中的服務器地址,並查看是否得到相同的錯誤。 – garethb

+0

您是否嘗試在連接字符串或特定用戶名和密碼中提供'Integrated Security = true'? – Developer

+0

既不能提供數據庫地址,也不能設置Integrated Security = true。 – DayaBM

回答

0
"ConnectionStrings": { 
"IAMContext":  "Server=192.168.0.3\\SQL2016;Database=IAM;Trusted_Connection=True;" 

看起來許可issue.Try在連接字符串,提供用戶名和密碼一樣

"ConnectionStrings": { 
"IAMContext": "Server=192.168.0.3\\SQL2016;Database=IAM; 
User=youruser; pass=yourpass; Trusted_Connection=False;" 

順便說一句,是192.168.0.3是你的本地機器? 要檢查它是否不是權限問題,請打開SSMS並嘗試連接到您的數據庫,以獲取您在連接字符串中使用的確切配置。

+0

這不是一個權限問題,我可以通過給它的IP地址以及在SSMS中的名字連接到數據庫。它通過提供用戶名,密碼並將False設置爲trusted_connection無效。還存在同樣的錯誤。 – DayaBM

0

經過大量的搜索後,我才知道,ASP.Net Core項目不支持EF。他們應該使用實體框架核心https://docs.microsoft.com/en-us/ef/core/index

+0

這是關於爲ASP.NET核心項目創建EF6類lib的[參考資料](https://docs.microsoft.com/en-us/aspnet/core/data/entity-framework-6)。 –

相關問題