使用达梦数据库
ClownFish已支持达梦数据库,具体使用方法可参考本文档。
1,引用 NuGet 包
在csproj项目文件中添加
<PackageReference Include="dmdbms.DmProvider" Version="1.1.3" />
<PackageReference Include="ClownFish.net" Version="9.24.1129.4" />
2,配置数据库连接
在ClownFish.App.config中添加:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
</appSettings>
<dbConfigs>
<add name="dm1" dbType="DaMeng" server="DamengHost" port="5237" database="MyNorthwind" uid="SYSDBA" pwd="xxxxxxx" />
</dbConfigs>
</configuration>
说明:也可以在配置服务中注册连接。
3,CRUD开发
这个过程与使用 SQLSERVER/MySQL/PostgreSQL 没有什么差别。
以下是实际的测试代码片段:
using DbContext db = DbContext.Create("dm1");
var args = new { CategoryID = 1 };
List<Product> list = db.CPQuery.Create("select * from Products where CategoryID = @CategoryID", args).ToList<Product>();
Console.WriteLine(list.ToXml());
using DbContext db = DbContext.Create("dm1");
db.CPQuery.Create("truncate table TestGuid").ExecuteNonQuery();
string insertSQL = "insert into TestGuid(RowGuid, IntValue) values(@RowGuid, @IntValue)";
for( int i = 0; i < 1000; i++ ) {
var args = new {
RowGuid = db.NewSeqGuid(),
IntValue = i + 1
};
db.CPQuery.Create(insertSQL, args).ExecuteNonQuery();
}
using DbContext db = DbContext.Create("dm1");
Product product = new();
product.LoadDefaultValues();
// insert
int newId = (int)product.Insert(db, true);
// query
Product product2 = db.GetByKey<Product>(newId);
Assert.IsNotNull(product2);
Product product3 = new Product{ ... };
// update
int effect = db.Update(product3);
Assert.AreEqual(1, effect);
Product product4 = db.GetByKey<Product>(newId);
Assert.IsNotNull(product4);
// delete
db.Delete<Product>(newId);
Product product5 = db.GetByKey<Product>(newId);
Assert.IsNull(product5);