带有MySQL数据库的ASP.NET 5 / MVC 6

asp.net-core entity-framework-core mysql mysql-connector

我计划构建一个将在Linux上托管的MVC 6网站,我目前正处于初始测试阶段,看看新的ASP.NET 5(vNext)和MVC 6是如何工作的,以及我是否可以在Linux上部署所有内容。

我的网站必须使用数据库,因为它将部署在Linux上,显然我不能使用SQL Server。我非常想使用MySQL,但也许有其他选择?我们现在只说,我需要MySQL,除非它不可能。

我意识到所有这些仍然处于测试阶段并且尚未准备好进行生产,但我只是想进行初始设置以确保在我开始在实际网站上工作之前一切正常。如果没有数据库连接,我不能这样做......

我很快发现,实体框架7还没有MySQL连接器,这是MVC 6使用的。这是否意味着我运气不好,必须等到新的MySQL连接器出来支持EF7?或者我可以在MVC 6网站中恢复到EF6,它支持MySQL吗?我尝试将依赖项添加到EF6但是在默认的MVC 6模板中有很多依赖项,所有引用EF7我完全丢失了,并且不知道如何处理它,如果它甚至可能的话。

总结一下:

  • 我可以将EF 7与MySQL一起使用,还是必须等到新的MySQL Connector支持这个?
  • 我可以回退到EF6并仍然使用MVC 6并在Linux上部署(使用Mono)吗?如果是这样,我该如何设置?
  • 如果所有其他方法都失败了 - 我可以在Linux / Mono上使用与MVC 6不同的数据库吗?

热门答案

我知道有两种解决方案。 SQLite和Postgres。不幸的是,它们都不适合今天的生产应用。这两个项目都在积极发展。 SQL Server仍然是EF 7中受支持最多的数据库。这应该可以在Mono中运行,但遗憾的是需要使用Windows Server(或SQL Azure)。

SQLite的

在此处输入图像描述

不适合服务器,但仍然有效 :EntityFramework.Sqlite正在开发EF 7. 你可以从Nuget.org获得beta1。这应该适用于Mono。

PostgreSQL的

Npgsql.EntityFrame

绝对是预发布,但正在构建 :此外,Postgres( npgsql )正在开发EF7提供程序。 他们的代码是onGitHub ,您可以从他们的MyGet源获取预发布包(将https://www.myget.org/F/npgsql-unstable添加到您的Nuget源。)



Related

许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因