任何人都可以帮助我下一步:如何在一个 LINQ 请求中使用两个不同的数据上下文?

using (var db = new DataMapDataContext(Connection))
        {
            using (var dbAdd = new DataMapDataContext(ConnectionAdd))
            {
                return (from i in dbAdd.ITEMs
                        join p in db.U_OTT_PINs on i.ITEMNO equals p.PIN_CODE
                        where p.PIN_TYPE == Utils.PinItem
                        select ...
            }
        }

是否可以?

更新:

我解决了我的问题,但没有使用不同的数据上下文:
        var listPinnedItems = new List<string>();
        using (var db = new DataMapDataContext(Connection))
        {
            listPinnedItems = (from lpi in db.U_OTT_PINs
                               where lpi.PIN_TYPE == Utils.PinItem
                               select lpi.PIN_CODE).ToList();
        }

        using (var dbAdd = new DataMapDataContext(ConnectionAdd))
        {
            return (from i in dbAdd.ITEMs
                    where listPinnedItems.Contains(i.ITEMNO)
                    ...

最佳答案

我不这么认为 - 这两个不同的上下文可能涉及同一数据库中的不同事务,甚至与完全不同的数据库实例交谈。它将如何构建 SQL 以在两者之间工作?

如果您能解释一下您要做什么,我们或许可以为您提供更多帮助。

关于c# - 如何在一个 LINQ 请求中使用两个不同的数据上下文?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3447415/

10-09 16:49
查看更多