在网上看到C#的Nhibernate的一个封装,但有一个地方看不明白。

2025-04-24 11:49:11
推荐回答(3个)
回答1:

Action就是一种委托类型,非泛型的Action类型就是一个无参数无返回值的委托,可以按下面的写法调用
Transaction(new Action(() =>
{
//执行一些数据库操作
}));
Transaction方法的意义其实就是让Action中的操作在数据库事务中进行。

回答2:

随便定义一个方法,都可以把这个方法当做参数传给Transaction。例如:
private void GetData()
{
//。。。。
}

DataAccess da = new DataAccess();
da.Transaction(GetData);

因为Action类型就是一个委托,可以接受返回void,且无参数的任何方法。

回答3:

Action action = new Action()

Transaction(action);
这样可以吧