【发布时间】:2013-09-28 20:25:23
【问题描述】:
我发现 OpenEdge 没有 OLEDB 或本机 ADO.NET 驱动程序。
有没有人成功地将 OpenEdge 驱动程序与 Linq 或实体框架一起使用?
【问题讨论】:
标签: openedge progress-db
我发现 OpenEdge 没有 OLEDB 或本机 ADO.NET 驱动程序。
有没有人成功地将 OpenEdge 驱动程序与 Linq 或实体框架一起使用?
【问题讨论】:
标签: openedge progress-db
ProgressSw 仍然没有官方解决方案,但我可以推荐 Alex Wiese 的提供商(请参阅下面的答案):EntityFrameworkCore.OpenEdge
因为ODBC is the only supported Interface for .net Clients 您不能直接将 OpenEdge DB 与实体框架一起使用 (Why doesn't Entity Framework support ODBC?)。
但是有一个来自OpenLink 的用于 OpenEdge 的商业 ADO.NET 驱动程序 还有一个非官方的NHibernate Dialect。
【讨论】:
我现在为 OpenEdge 创建了一个Entity Framework Core provider。您现在可以通过 ODBC 对 OpenEdge 数据库使用 Entity Framework Core。
您可以使用简单的 ORM Dapper 与 Progress OpenEdge 的 ODBC 连接。
using (var connection = new OdbcConnection("DSN=My OpenEdge DB;Pwd=mypassword"))
{
connection.Open();
var dogs = connection.Query<Dog>("SELECT * FROM pub.Dogs");
}
您可以将 Dapper.Contrib 用于某些选择语句(因此您无需编写 SQL)。其他语句无法正常工作,并且参数存在问题。你可以 fork Dapper 并修改代码来解决这些问题。
【讨论】: