在Ubuntu 16.04上使用实体框架(Entity Framework)

3

我已经成功创建了一个托管在 Ubuntu Linux 服务器上的 asp.net core mvc 应用程序。该网站运行正常。

今天,我向我的项目添加了 Entity Framework。我可以将数据提交到数据库并在我的 Windows 机器上检索它,所以这方面是正常工作的。

当我将项目移动到 Ubuntu 机器上时,网站可以正常工作,但当我尝试访问需要数据库的页面时,出现以下错误:

PlatformNotSupportedException: LocalDB is not supported on this Platform.
System.Data.SqlClient.SNI.LocalDB.GetLocalDBConnectionString(string localDbInstance)

我在Ubuntu机器上是否缺少Entity Framework / SQL_Server包,还是有其他原因导致的?

你将使用 Linux,因此请使用 MySql 或 MariaDB,它们是这些操作系统的原生数据库,可以与 EF7 和 .net Core 兼容。 - Gusman
2个回答

4

看一下错误信息:

PlatformNotSupportedException:本平台不支持LocalDB

这意味着,在Linux上不支持LocalDB。

还可以在github上查看this issue

正如@ErikEJ所说,LocalDB仅适用于Windows。 在Linux上,您可以使用远程运行在Windows上的SQL Server(使用EF Core),预览版本https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-overviewSQL Azure。 或者,您可以使用Postgres和SQLite提供程序。

因此,总之,您需要另一个数据库。


1

在Ubuntu上,无法使用Visual Studio中的本地DB文件,因为错误提示显示不支持。但是,您可以使用SQL Server 2017作为数据库引擎,它现在支持Linux或任何受支持的DBMS(数据库管理系统)在Ubuntu上。

您可以使用此链接在Linux上安装SQL Server 2017 安装指南


1
这将是一个很好的解决方案,但是SQL Server 2017需要3.5GB的RAM才能安装。不幸的是,我没有那么多的内存。 - jeninja
我通过使用SQLite并创建本地.db文件成功解决了这个问题。请访问http://jeninja.net/Links获取一些有用的资源。 - jeninja

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接