.Net 的 ORM框架 在MySql上试过几个. DBLinq, 这个类似于Linq to Sql, BUG太多了; Linq to Entity, 这个也试了,很多特性不支持,写起来很不方便。
论到兼容性、稳定性,最后还是觉得BLToolkit最优.
BLToolkit提供了对数据库访问的多层次封装。可以用ADO.Net的封装,可以用Entity ORM, 也可以用Linq, 使用起来非常方便。
而且它支持各种各样的数据库
Class | Provider Name | Namespace | Vendor |
---|---|---|---|
AccessDataProvider | Access | System.Data.OleDb | Microsoft |
OdbcDataProvider | Odbc | System.Data.Odbc | Microsoft |
OleDbDataProvider | OleDb | System.Data.OleDb | Microsoft |
OracleDataProvider | Oracle | System.Data.OracleClient | Microsoft (deprecated by Microsoft in FW 4.0) |
SqlDataProvider | Sql | System.Data.SqlClient | Microsoft |
DB2DataProvider | DB2 | IBM.Data.DB2 | IBM |
FdpDataProvider | Fdp | FirebirdSql.Data.FirebirdClient | Firebird |
InformixDataProvider | Informix | IBM.Data.Informix | IBM |
MySqlDataProvider | MySql | MySql.Data.MySqlClient | Sun Microsystems |
OdpDataProvider | ODP | Oracle.DataAccess.Client | Oracle |
SqlCeDataProvider | SqlCe | System.Data.SqlServerCe | Microsoft |
SQLiteDataProvider | SQLite | System.Data.SQLite | SQLite.org |
SybaseAdoDataProvider | SybaseAdo | System.Data.OleDb | Support for DataDirect Sybase ADO Provider |
SybaseDataProvider | Sybase ASE | Sybase.Data.AseClient |
|
准备好Mysql, 安装好 Mysql connector , http://www.mysql.com/downloads/connector/net/
现在的最新版本是 6.3.6, 最好不要使用 Windows 32bit那个版本,Windows 2008服务器可是64位的哦。
安装完 MySql Connector后, 你可以将MySql.Data.dll拷贝到你的网站目录下,或者干脆直接加入到GAC里面去。
然后下载BLToolkit Lib, http://bltoolkit.net , 你可以选择下载源代码 或者直接使用它编译好的dll
引入工程后,就可以在*.config里面进行配置了
这里需要注意,如果你是直接使用 编译好的BLToolkit dll, 那么上面配置中的 assembly redirection那节很可能是需要的,因为你机器上的MySql.Data.dll版本可能和BLToolkit要求的版本不一致。 你也可以自己编译BLToolkit来避免这个问题。
我从它的SVN上获取到最新的版本,用VS2010编译通过了,这样简单些。
现在就配置完了。
---------
关于SQL语句中变量的问题
MySql有一种老式的变量命名风格 ?XXX 和 新式的变量风格 @XXXX,而BLToolkit.Data.DataProvider.MySqlDataProvider中却是默认使用老式的变量风格
如果你想使用 新式的变量,像下面一样
那么你就需要修改 MySqlDataProvider的默认配置, 将它的构造函数直接改成