ASP.NET vnext和开放数据库

5

有没有可能使用像mysql、mariadb或其他开放数据库和ASP.NET vNext一起工作?

也许有测试版的驱动程序或类似的东西吗?


1
为什么您不能在任何版本的ASP.NET中使用mysql? - John Saunders
4个回答

6

对于ASP.NET vNext,您可以选择针对完整的.NET Framework或轻量级的Core框架进行开发。Core框架是跨平台且支持二进制部署的。

如果您选择针对完整的.NET Framework进行开发,则可以和以前一样使用所有的数据访问选项。如果您选择针对CoreCLR进行开发,则可以使用新版本的Entity Framework(EF7)。目前,CoreCLR上有以下提供程序可用:SQL Server、SQLite和一个内存提供程序用于测试。当然,在我们向RTM努力的过程中,会有更多的提供程序可用。

除了EF7之外,还有相应的特定提供程序SDK可用于EF构建之上,这些SDK也可以在应用程序代码中使用(例如,有一个SqlClient的实现可以用于访问SQL Server数据库)。

您可以在此处阅读有关EF7计划的更多信息 - http://blogs.msdn.com/b/adonet/archive/2014/05/19/ef7-new-platforms-new-data-stores.aspx


1
这取决于您是否使用CoreCLR(精简版)还是桌面配置文件。在桌面配置文件中,您拥有.NET中的所有内容,并且可以通过Nuget添加自己的开源库。
只需打开项目json并添加所需的依赖项即可。
无论如何,您不应该处理低级别的ADO.NET,可以使用Entity Framework、Massive或nHibernate等工具来抽象出特定的数据库,因为它在项目生命周期内可能会发生更改或增加。

1
谢谢你的好评。但是我想使用CoreCLR在Linux机器上发布代码。 - Patrik
@Monoman 我是一个新手,不知道如何在vnext mvc中使用Entity Framework,在添加新项中没有找到选项,是否有任何方法可以使用OData。 - Rahul Chakrabarty

0

你仍然可以在ASP.Net vNext中使用任何与ADO.Net相关的内容 - 毕竟,它仍然是.Net!


啊,好的,但是可以使用Ado的标准类(如Sqlcommand)等来与mysql服务器通信吗? - Patrik
如果您添加了MySQL ADO.Net驱动程序,当然可以! - user32826
但它们不能在 Linux 机器上运行,对吧? :-) - Patrik
为什么不呢?http://www.mono-project.com/Database_Access 指向一个MySQL ADO.Net适配器,它将在所有CLR平台下工作,因为它是完全托管的。 - user32826
据我所知,CoreCLR不支持ADO.Net(仅支持System.Data.Common),因此您将无法使用任何mysql或postgresql提供程序。这种情况将来会改变吗? - enantiomer2000

0

是的,这是可能的,但只有在您使用完整的.NET框架(在Windows上是.NET Framework,在Linux上是Mono)时才能实现。NHibernate在Mono上运行良好,因此您最终可以在APS.NET 5 vNext应用程序中使用MySQL、PostgreSQL和其他数据库。这里有一个完整的应用程序示例,其中包括NHibernate和Ubuntu服务器上的PostgreSQL


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