2011-12-14 59 views
11

是否有MySQL的任何非GPL ADO.NET提供程序?用於MySQL的非GPL ADO.NET提供程序?

還有就是從這裏開始
http://dev.mysql.com/downloads/connector/net
官之一,但不幸的是,它是GPL,而不是LGPL下。

我正在開發一個數據庫訪問的抽象類。
我不在乎抽象層是否是GPL,
但是如果它使用MySQL(我的意思是MySQL ADO.NET提供程序,而不是MySQL數據庫本身),它將是GPL,因此任何應用程序使用該圖層,這是我不想要的東西...


哦,我知道nHibernate/Subsonic/otherORMs,但它不符合我的需要。

當然使用ODBC的ADO.NET提供商很少。

編輯/澄清:
注意的是,「抽象類的數據庫訪問」,我說的不是我自己寫的通用ADO.NET提供商。 我的意思是圍繞一組已經存在的ADO.NET提供者編寫一個包裝類。

+0

使用連接器不會強制您打開該代碼,只有在向連接器添加了一個功能時,您必須打開該連接器的開放源代碼。 – 2011-12-14 12:24:20

+1

@ Joseph Le Brech:但是這將是LGPL,GPL是不同的...... – 2011-12-15 15:06:30

+0

如果你擔心它只是在你的.cs文件中提取它。 LGPL用於靜態鏈接庫。但是您將動態鏈接並且不向連接器添加任何新功能。如果你真的擔心,那麼使用SQL服務器。 – 2011-12-15 15:52:22

回答

6

ADO.NET提供者,我得到了完美的答案:

我們可以使用System.Data.Odbc繞過它。
您可以隨時說,它是通用的ODBC,與MySQL無關,特別容易替換。
無論你放入連接字符串是你的客戶的問題。
如果你寄過來的ODBC連接的SQL在MySQL/MariaDB的工作而已,這是令人遺憾的 - 但沒有法律問題;)

編輯 - 2016更新:
可以使用的MIT許可MySqlConnector .NET Core(它也適用於.NET) https://github.com/mysql-net/MySqlConnector

0

停止吞服Microsoft FUD。

因此,除非您打算修改所提供的代碼並重新分發它(而不是將其與您自己的應用程序綁定在一起),否則您將僅限於GPL,因此您需要聲明該軟件包包含GPL v2.0授權代碼並引用版權所有者(無論如何,您幾乎總是需要使用大多數商業授權的軟件)。

0

但如果使用MySQL將是GPL

啊 - 沒有。你可以用它甚至不知道它連接到MySql的方式編程。

  • 將所有抽象劃分爲單獨的程序集。
  • 在此(允許)中實現您的專有接口。
  • 將mySql的抽象分配爲gpl。

已完成。

相關問題