1

请问Spring.Net是否内置了对Linq2SQL的支持?Spring.Net 论坛上有人提到 NHibernate 有一个桥梁。但是,我可能根本不使用 NHibernate。我正在寻找对 Linq2Sql 的直接支持。

如果我正在使用TxScopeTransactionManager基于属性的事务并将其应用于包含两个 linq2sql 调用的业务方法,该事务是本地事务还是升级为分布式事务?

4

2 回答 2

2

我建议使用ConnectionUtils及其GetConnectionTxPair方法。它返回一对数据库连接和附加到它的事务。DataContext当您引用事务时,您可以通过简单地设置Transaction此上下文的属性来显式地将 LINQ2SQL加入其中。

您可以扩展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 感知对象。

于 2012-11-06T22:41:33.953 回答
0

我想知道同样的事情。我在这里做了一个快速搜索:

http://jira.springframework.org/secure/QuickSearch.jspa

和这里:

http://forum.springframework.net/search.php?do=process

什么也没发生。它不在 1.3 中,而且似乎不在 2.0 的路线图中。

于 2010-02-25T20:44:14.823 回答