我是否知道Spring.Net是否内置了对Linq2SQL的支持?有人在Spring.Net论坛上提到过NHibernate的桥梁。但是,我可能根本不使用NHibernate。我正在寻找对Linq2Sql的直接支持。
如果我使用TxScopeTransactionManager
并将基于属性的事务应用于包含两个linq2sql调用的业务方法,那么事务是本地事务还是升级到分布式事务?
答案 0 :(得分:2)
我建议使用ConnectionUtils
及其GetConnectionTxPair
方法。
它返回一对附加到它的数据库连接和事务。当您引用事务时,您可以通过简单地设置此上下文的DataContext
属性来显式地登记LINQ2SQL Transaction
。
您可以扩展AdoTemplate
以支持LINQ2SQL:
public delegate T DataContextDelegate<T>(DataContext command);
public class LinqAdoTemplate : AdoTemplate
{
public virtual T Execute<T>(DataContextDelegate<T> del)
{
ConnectionTxPair connTxPair = ConnectionUtils.GetConnectionTxPair(DbProvider);
using (var context = new DataContext(connTxPair.Connection))
{
//downcast is a bit smelly here
//one can throw exception though when connTxPair.Transaction is of invalid type
context.Transaction = connTxPair.Transaction as DbTransaction;
return del(context);
}
}
}
然后,您可以配置Spring.NET将其注入到AdoTemplate感知对象中。
答案 1 :(得分:0)
我想知道同样的事情。我在这里做了一个快速搜索:
http://jira.springframework.org/secure/QuickSearch.jspa
在这里:
没有出现任何事情。它不在1.3中,似乎不在2.0的路线图中。