簡體   English   中英

帶有MySQL數據庫的ASP.NET 5 / MVC 6

[英]ASP.NET 5 / MVC 6 with MySQL database

我計划構建一個將在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源。)

我可以將EF 7與MySQL一起使用,還是必須等到新的MySQL Connector支持這個?

目前沒有支持MySQL的EF7模塊,我相信我確信這是團隊有興趣為社區驅動的為EF構建模塊而創建的拉取請求。 它還處於早期階段,所以誰知道會發生什么。

我可以回退到EF6並仍然使用MVC 6並在Linux上部署(使用Mono)嗎? 如果是這樣,我該如何設置?

你應該能夠,你將無法使用CoreCLR,但我的理解是你仍然可以在Mono上堅持下去。 現在我注意到一些事情(我認為或Jabbr或博客,不確定),一旦CoreCLR支持linux和Mac 100%,這將是運行ASP.NET應用程序的唯一方式,但我再次不確定這個。

如果所有其他方法都失敗了 - 我可以在Linux / Mono上使用與MVC 6不同的數據庫嗎?

目前除了EF7之外沒有任何東西可以支持CoreCLR,但我確信隨着我們前進,您將看到針對MySQL,Mongo,Raven等的coreclr重新編譯的C#庫。

我試圖在2015年12月30日更新這個問題,因為問題發布以來在ASP.NET 5空間中已經開發了很多。 在本文或本文中,我們處於最終版本更新1(1.0.0-rc1-final-update1)。

這是一個sqlite選項: http ://damienbod.com/2015/08/30/asp-net-5-with-sqlite-and-entity-framework-7/使用EF7和SQLite。 不確定這是否已准備好Linux ...

"EntityFramework.Commands": "7.0.0-rc1-final", "EntityFramework.SQLite": "7.0.0-rc1-final"

另一種選擇是使用EF6以及ASP.NET 5和MVC 6,請閱讀這篇文章: http//dan.cx/2015/08/entity-framework-6-mysql-aspnet 這是Linux准備好了。

我鼓勵人們繼續更新這個問題,因為社區和Microsoft仍在為ASP.NET 5 MVC 6應用程序開發基於Linux的解決方案。

SQLite選項是Linux和OS X准備好的。 (dnxcore支持)

http://damienbod.com/2016/01/07/experiments-with-entity-framework-7-and-asp-net-5-mvc-6/

http://damienbod.com/2015/08/30/asp-net-5-with-sqlite-and-entity-framework-7/

EF6解決方案不是,只能在.NET上運行。

EF7和ASP.NET 5應該在2016年第一季度/第二季度生產就緒,不確定,沒有設置日期。

PostgreSQL看起來像是一個很好的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM