我使用 .NET CLI 在我的機器上創建了一個空dotnet new webapi專案。我已經設定ApplicationDbContext了一個連接字串,appsettings.json并創建了一個我想在資料庫中創建的模型。
專案成功構建并運行命令時
dotnet ef migrations add InitialCreate
它會生成其中Migrations包含遷移腳本的檔案夾。
運行腳本并使用dotnet ef database update引發以下錯誤的位置更新資料庫時會出現問題:
Entity Framework Core 6.0.6 使用提供者 'Microsoft.EntityFrameworkCore.SqlServer:6.0.6' 初始化'ApplicationDbContext' 選項:無 ...
...
...
ClientConnectionId:#@#@#@@-#### -####-@###-#@#@#@#@
錯誤號:18456,狀態:1,類:14
用戶“abc###\Guest”登錄失敗。
我不確定它為什么會拋出此錯誤以及如何修復它。
appsettings.json:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=BookClub;Trusted_Connection=True;"
}
}
BoockClub.csproj:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Dapper" Version="2.0.123" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.6">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.6">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="System.Data.SqlClient" Version="4.8.3" />
</ItemGroup>
</Project>
ApplicationDbContext.cs:
using BookClub.Models;
using Microsoft.EntityFrameworkCore;
namespace BookClub.Data;
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
}
public DbSet<Category> Categories { get; set; }
}
CategoryController.cs:
using BookClub.Data;
using Microsoft.AspNetCore.Mvc;
namespace BookClub.Controllers;
public class CategoryController : Controller
{
private readonly ApplicationDbContext _db;
public CategoryController(ApplicationDbContext db)
{
_db = db;
}
public IActionResult Index()
{
var categoryList = _db.Categories.ToList();
return View();
}
}
系統:
- macOS 12.2.1
應用:
- VS 代碼
- 碼頭工人 - SQL Server
- VS Code 的 SQL Server 擴展
uj5u.com熱心網友回復:
問題是您的連接字串。
Trusted_Connection=True;意味著您的應用程式正在使用 Windows 憑據進行身份驗證,除非您在 Docker 中使用所有必要的配置運行 Windows,否則它將無法正常作業。
您需要創建一個 SQL Authenticated DB 用戶(使用用戶名和密碼),然后更改連接字串
舊值
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=BookClub;Trusted_Connection=True;"
}
新價值
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=BookClub;User Id=MyUsername;Password=MyPassword;"
}
如果您使用的是 SQL Server Management Studio,請使用以下選項來創建用戶名和密碼:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/492704.html
標籤:C# 。网 sql服务器 实体框架 dotnet-cli
