我是 .Net Core 的新手,
我一直在使用 .Net Framework 來開發應用程式(Web App / Web API)。我已經開發了我的自定義框架并且它已經建立了。我的自定義框架使用 Entity Framework 6.0 (DB First) 現在,我已分配在 .Net Core 中開發 Web Api。但仍然使用我的自定義框架來處理資料。在 .net 核心 web api 上,我需要在 .net 標準上分配連接字串,如 web api 在 .Net 標準中,我的連接字串如下所示
<connectionStrings>
<add name="CompanyEntities"
connectionString="metadata=res://*/CompanyModel.csdl|res://*/CompanyModel.ssdl|res://*/CompanyModel.msl;provider=System.Data.SqlClient;provider connection string="data source=127.0.0.10;initial catalog=XYZ;persist security info=True;user id=sa;password=zzzxxx123!;multipleactiveresultsets=True;application name=EntityFramework""
providerName="System.Data.EntityClient"/>
對于使用 .Net 標準框架(WebApp/WebApi)的應用程式......這沒有問題。它運行正常
但我不知道,如何在 .Net Core 上設定連接字串?請幫忙
我試過這樣的連接字串但失敗了
"ConnectionStrings": {
"CompanyEntities": "Data Source=127.0.0.10;Database=xyz;uid=sa;pwd=zzzxxx123!;MultipleActiveResultSets=true;Integrated Security=False"
}
這是錯誤:
嚴重性代碼描述專案檔案行抑制狀態錯誤 CS0311 型別“Classes.Model.Data.Library.CompanyEntities”不能用作泛型型別或方法“EntityFrameworkServiceCollectionExtensions.AddDbContext(IServiceCollection, Action, ServiceLifetime, ServiceLifetime) 中的型別引數“TContext” )'。沒有從“Classes.Model.Data.Library.CompanyEntities”到“Microsoft.EntityFrameworkCore.DbContext”的隱式參考轉換。
這是我的 dbcontext
public partial class CompanyEntities : DbContext
{
public CompanyEntities()
: base("name=CompanyEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
uj5u.com熱心網友回復:
試試這個:
"ConnectionStrings": {
"CompanyEntities": "Server=yourServerName; Database=xyz;Trusted_Connection=True;"
},
請注意,您需要為要訪問的資料庫提供程式安裝 NuGet 包。
例如,如果要使用 MS SQL Server 資料庫,則需要安裝Microsoft.EntityFrameworkCore.SqlServerNuGet 包。
您還需要為 EF 工具安裝 NuGet 包Microsoft.EntityFrameworkCore.Tools
確保將其添加到您的 startup.cs:
services.AddDbContext<YourContext>(options => options.UseSqlServer
(Configuration.GetConnectionString("CompanyEntities")));
如下修改您的 dbcontext:
public partial class CompanyEntities : DbContext
{
public CompanyEntities()
{
}
public CompanyEntities(DbContextOptions<CompanyEntities> options)
: base(options)
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
在 EF Core 上查看本教程
如果您想在 .NET 核心中使用 EF 6(不是核心),這可能很有用,但我個人之前沒有使用過。
uj5u.com熱心網友回復:
在您的 DBContext 類中嘗試以下代碼:-
public class CompanyEntities : DbContext
{
public CompanyEntities (DbContextOptions<CompanyEntities> options)
: base(options)
{ }
...
}
希望現在它可以解決您的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/420383.html
標籤:
上一篇:將根元素添加到回應模型
