gpt4 book ai didi

c# - 在 DbContextOptions 上找不到 UseMysql 方法

转载 作者:IT王子 更新时间:2023-10-29 00:31:25 25 4
gpt4 key购买 nike

我在 linux 上玩弄 dotnet 核心,我正在尝试使用连接字符串配置我的 DbContext 到 mysql 服务器。

我的 DbContext 看起来像这样:

using Microsoft.EntityFrameworkCore;
using Models.Entities;

namespace Models {
public class SomeContext : DbContext
{
//alot of dbSets...
public DbSet<SomeEntity> SomeDbSet { get; set; }

public SomeContext(DbContextOptions<SomeContext> options) : base(options) {

}

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMysql //Cannot find this method
}


protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//using modelBuilder to map some relationships
}
}
}

我的依赖看起来是这样的:

"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Configuration.CommandLine": "1.0.0",
"Microsoft.AspNetCore.Mvc":"1.0.0",
"Microsoft.EntityFrameworkCore": "1.0.1",
"MySql.Data.Core": "7.0.4-ir-191",
"MySql.Data.EntityFrameworkCore": "7.0.4-ir-191"
},

我还尝试在以下代码中的 Startup.cs 中使用 mysql 服务器

public class Startup
{

public void ConfigureServices(IServiceCollection services)
{
var connection = @"Server=(localdb)\mssqllocaldb;Database=EFGetStarted.AspNetCore.NewDb;Trusted_Connection=True;";
services.AddDbContext<SomeContext>(options => options.UseMysql); //Cannot find UseMysql*
}

我试图改变我的指令

using Microsoft.EntityFrameworkCore;

using MySQL.Data.EntityFrameworkCore;

哪个有意义?也许?但是所有对 DbContext 和 DbSet 的引用都消失了,所以我想解决方案是各种混合??

最佳答案

你需要

using Microsoft.EntityFrameworkCore;
using MySQL.Data.EntityFrameworkCore.Extensions;

Oracle 在使用依赖注入(inject)时不遵守标准做法,所以它有点不同。标准做法是将 Depedency Injection 的扩展方法放入 Microsoft.Extensions.DependencyInjection 命名空间,该命名空间包含在大多数 ASP.NET Core 应用程序项目中,因此该方法在导入包时自动可用。

关于c# - 在 DbContextOptions 上找不到 UseMysql 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40059929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com