如何在 ASP.NET 5 中将实体框架 6 与 MySQL 结合使用?

2024-03-12

我有一个使用 ASP.NET MVC 4、Entity Framework 6 和 MySQL 的现有网站。我正在尝试将其升级到 ASP.NET 5,但希望继续使用实体框架 6,因为实体框架缺少一些功能并且尚不支持 MySQL。如何在 ASP.NET 5 中使用 EF6?


由于 Web.config 不再与 ASP.NET 5 一起使用,因此您需要使用基于代码的配置 https://msdn.microsoft.com/en-us/data/jj680699.aspx来配置它。为此,创建一个继承自 DbConfiguration 的新类:

public class MyDbConfiguration : DbConfiguration
{
    public MyDbConfiguration()
    {
        // Register ADO.NET provider
        var dataSet = (DataSet)ConfigurationManager.GetSection("system.data");
        dataSet.Tables[0].Rows.Add(
            "MySQL Data Provider",
            ".Net Framework Data Provider for MySQL",
            "MySql.Data.MySqlClient",
            typeof(MySqlClientFactory).AssemblyQualifiedName
        );

        // Register Entity Framework provider
        SetProviderServices("MySql.Data.MySqlClient", new MySqlProviderServices());
        SetDefaultConnectionFactory(new MySqlConnectionFactory());
    }
}

配置的第一部分是在运行时注册 ADO.NET 提供程序,方法是动态地将新的配置条目添加到system.data部分。这是非常hacky的,但看起来确实可以正常工作。

将连接字符串添加到config.json而不是Web.config:

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=localhost; Database=test; Uid=test; Pwd=password;"
    }
  }
}

修改DbContext使用正确的配置和连接字符串:

[DbConfigurationType(typeof(MyDbConfiguration))]
public class MyContext : DbContext
{
    public MyContext(IConfiguration config)
      : base(config["Data:DefaultConnection:ConnectionString"])
      {
      }
      // ...
}

登记MyContext在依赖注入容器中Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
    // ...
    services.AddScoped<MyContext>();
}

然后你可以使用构造函数注入来获取MyContext进入您的控制器。

更多详细信息,请参阅我的博客文章:http://dan.cx/2015/08/entity-framework-6-mysql-aspnet http://dan.cx/2015/08/entity-framework-6-mysql-aspnet,以及一个示例项目https://github.com/Daniel15/EFExample https://github.com/Daniel15/EFExample

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ASP.NET 5 中将实体框架 6 与 MySQL 结合使用? 的相关文章

  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • MYSQL - 查找最近的前一天

    我可以以某种方式 不使用 PHP 找到一周中最近的前一天日期吗 Like 最近的上一个星期二的日期是哪一天 CURDATE INTERVAL WEEKDAY CURDATE wday IF WEEKDAY CURDATE gt wday 0
  • Hibernate 对集合的查询过滤器

    我想执行以下查询 from Item i where i categoryItems catalogId catId 然而 这会产生以下异常 非法尝试取消引用集合 所以我用谷歌搜索 找到了这个 Hibernate 论坛帖子https for
  • aspnetcore 出现角度错误 NodeInitationException:节点调用在 60000 毫秒后超时

    我在用着yo generator aspnetcore spa一旦我运行应用程序 我就遇到了问题 处理请求时发生未处理的异常 NodeIncationException 节点调用在 60000 毫秒后超时 您可以通过设置更改超时持续时间 N
  • 如何在Mysql中仅将不同的值从一个表复制到另一个表?

    我有一个大约 2 5GB 的 MySql 数据库 表 A 具有以下列 anoid query date item rank url 我刚刚创建了另一个仅包含列的表 b query and date 我想在查询列中插入所有不同的记录 及其各自
  • 使用实体框架重叠约会

    我将 asp net mvc 与实体框架一起使用 我有一个包含 startat 字段 endat 字段和 roomid 字段 称为 SpaceConfigurationId 的约会列表 并且希望查找给定房间已重复预订的约会列表 可以假设 e
  • MySQL MIN/MAX 所有行

    我有桌子Races与行ID Name and TotalCP 我选择分钟 TotalCP FROM Races 但是我想选择具有最小值的整行 我如何在单个查询中做到这一点 从聚合值获取整行的一般形式是 SELECT FROM Races W
  • 忽略重复条目并在 EF Core 中的 DbContext.SaveChanges() 上提交成功条目

    我有一个 ASP Net Core 2 2 Web API 在我的一个控制器操作中 我向 MySQL 数据库表添加了一堆行 我使用的是 Pomelo 例如 dbContext AddRange entities dbContext Save
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • Mysql 创建定义器

    我创建了一个在 CentOS Web 服务器上运行的 Intranet Web 应用程序 该应用程序使用另一个本地服务器 始终是 CentOS 作为 MySQL 数据库 在数据库内部我创建了例程 这些例程总是这样开始 CREATE DEFI
  • 如何使用 vitess 仅对特定表进行分片

    我创建了一个包含三个表的未分片键空间 现在我想对前两个表的键空间进行分片 但不想对第三个表进行分片 如何才能做到这一点 Vitess 文档不包含任何与此相关的信息或示例 请帮忙 Thanks vitess 中的垂直分片与水平分片类似 您应该
  • 在服务器上找不到本地主机或 phpMyAdmin:如何修复?

    我按照安装说明进行操作PHP MySQL and PHPMyAdmin 但是当我尝试访问时http localhost phpmyadmin 我收到此错误 未找到 在此找不到请求的 URL phpmyadmin 服务器 然后我尝试访问loc
  • PDO PHP 连接,致命错误

    我的连接类 firstcode php class DB functions public db function construct try db new PDO mysql localhost dbname xxx charset ut
  • Bugzilla 中分离客户端的基本权限

    我正在尝试配置一个 Bugzilla 实例 这将允许我的客户登录并为其正在开发 维护的网站提交错误 例如 我创建了 2 个名为 TestProject TestProject2 的产品和一个名为 TestClient 的用户 我想要实现的是
  • 同一配置文件上的两个不同提供程序

    我在用着实体框架 6 1 0 I have 2 家提供者 MysqlClient 和 SQLServerCE 我需要创建2个不同的DBContext 这迫使我创造2个配置类因为mysql有一些不同的东西 但是当我初始化应用程序时 Datab
  • 使用实体框架时是否应该使用部分类作为业务层?

    我正在开发一个使用实体框架的项目 使用EF生成的类的部分类作为业务层可以吗 我开始认为这就是 EF 的用途 我尝试使用 DTO 模式 很快意识到我只是创建了一堆映射类 这重复了我的工作 而且还导致更多的维护工作和额外的层 我想使用自我跟踪实
  • 如何解决 Typescript 构建中的错误“找不到模块 'jquery'”

    我目前在 ts 文件的顶部有这个import require jquery 我这样做是因为我试图在我的打字稿文件中使用 jquery 但我似乎无法编译它 因为它返回标题中所述的错误 我正在使用 ASP NET CORE 脚本文件夹 tsco
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le

随机推荐

  • 在 SimpleHTTPServer.py 中重定向浏览器?

    我部分通过实现功能简单HTTP服务器 py http hg python org cpython file tip Lib SimpleHTTPServer py在方案中 我对 HTTP 请求 响应机制很感兴趣 在查看上面的文件时 我遇到了
  • PostgreSQL 中的 IN 与 ANY 运算符

    有什么区别IN and ANYPostgreSQL 中的运算符 两者的工作机制似乎是相同的 谁能用一个例子来解释这一点 严格来讲 IN and ANY是 Postgres 构造 或 语法元素 而不是 运算符 从逻辑上来说 引用手册 http
  • 从“最近的应用程序”启动应用程序和点击应用程序图标有什么区别

    我正在开发大型项目 因此有一些逻辑可以保存应用程序状态 然后在来自后台时打开正确的活动 片段 但无论如何 我发现如果用户浏览我的应用程序然后最小化它 android 在以下情况下会以不同的方式从后台打开它 用户点击应用程序图标 行为 当应用
  • 扩展 Object.setPrototypeOf() 与 Object.create

    我知道继承函数构造函数的两种方法 选项1对象 创建 function x x y this x x this y y x prototype XDD function function y c r x call this 1 2 this
  • 引用其他类上的静态属性时的 C# 线程安全

    我有一个方法来生成我编写的完全限定的 URL 我希望将其作为静态的 以便根据需要从模型中轻松调用 然而 我仍然无法确定其线程是否安全 这是代码 public string GenerateURLFromModel string action
  • Windows 中什么是零字节可执行文件

    我注意到在安装某些应用程序期间创建的文件夹 USERPROFILE AppData Local Microsoft WindowsApps 中有一些零字节可执行文件 这些是什么 如何像Windows一样创建和调用它 谢谢 GameBarEl
  • ASP.NET 多个联合身份提供商

    我正在开发一个 ASP NET 应用程序 我已成功添加对独立 AD FS 2 0 服务器的 STS 引用 因此我可以针对第 3 方的活动目录进行身份验证 问题是我有多个客户希望能够针对自己的活动目录进行身份验证 看来我只能在一个项目中添加一
  • 有没有办法限制 firebase 中的儿童数量?

    我有一个火力基地 我经常推动它 就像聊天一样 我担心聚集在火力基地的孩子数量 当所有连接都消失时 它们都会被删除 但是有没有办法限制其中的数量 Cheers 你可以使用这样的方法来实现类似的东西环形缓冲区 http en wikipedia
  • SQL 数据库中的持久变量?

    有没有办法将简单 持久 变量声明为 SQL 数据库的一部分 我正在尝试手动实现类似于 auto increment 的机制 但不与任何特定字段或表关联 每次调用我的一组过程中的一个时 我希望该变量增加 我发现你可以创建本地变量 会话变量和全
  • Pandas:在条件后创建指示列

    import numpy as np import pandas as pd df pd DataFrame cond A A A A A A A A A B B B B B B B B B Array S S TT TT S S TT T
  • Crashlytics 在初始化期间超时

    当我使用 Crashlytics 运行 Android 应用程序时 它在启动时挂起 并且我得到一个TimeoutException 然后 当我尝试使应用程序崩溃时 我收到另一个 TimeoutException 并显示消息Crashlyti
  • Django BooleanField 作为下拉菜单

    有没有办法让 Django BooleanField 成为表单中的下拉菜单 现在它呈现为单选按钮 是否可以有一个带有选项的下拉菜单 是 否 目前我对该字段的表单定义是 attending forms BooleanField require
  • 为什么将 Spring Cloud 应用程序与 AWS Parameter Store 集成不会从参数存储中返回任何属性?

    Intent 我正在开发一个 POC 打算使用 AWS 参数存储作为属性存储 这会将机密应用程序属性存储在 AWS SSM 的参数存储中 我正在使用 Java 8 和 spring boot cloud 版本 2 Resource 我跟着本
  • 打印顶部没有 XML 标题行的 XML 文档

    我只是想找出如何to xml with a Nokogiri XML Document or a Nokogiri XML DocumentFragment 或者 我想在Nokogiri XML DocumentFragment 我无法确定
  • AsParallel() 如何分割它的“源”?

    我试图确定 AsParallel 如何分割它的 源 以及 源 的含义 例如 public class CSVItem public DateTime Date get set public string AccountNumber get
  • Google Cloud Dataflow:通过命令行参数指定 TempLocation

    我尝试通过将其作为命令行中的选项传递来指定我的 GCS 临时位置 如下所示 java jar pipeline 0 0 1 SNAPSHOT jar runner DataflowRunner project
  • Array.push.setAnyFormatting('红色')?

    描述 Stack Overflow 用户 mhawksey 最近做了一些出色的优化 https stackoverflow com questions 35289183 long processing time likely due to
  • 如何将vim(通过tmux)绑定到Cmd键

    我通常使用 macvim 并且使用 macs 命令键有许多键绑定 我正在尝试切换到 tmux 但这些绑定都不起作用 有关如何修改我的 tmux config 或 vimrc 以恢复这些绑定的任何提示 你是否有机会使用
  • 如何在单击时切换选中/未选中状态时更改复选框标签的颜色

    当我选中或取消选中时 我试图更改复选框标签的字体颜色和背景颜色 我在这个网站上找到了一个 javascript 解决方案 但无法使代码正常工作 这是我到目前为止所尝试过的 现在它正在将 突出显示 类附加到父 div 我只想更改标签 谢谢你的
  • 如何在 ASP.NET 5 中将实体框架 6 与 MySQL 结合使用?

    我有一个使用 ASP NET MVC 4 Entity Framework 6 和 MySQL 的现有网站 我正在尝试将其升级到 ASP NET 5 但希望继续使用实体框架 6 因为实体框架缺少一些功能并且尚不支持 MySQL 如何在 AS