如何在一个LINQ请求中使用两个不同的数据上下文?
任何人都可以帮助我:如何在一个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(); 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来跨两个工作?
如果你能解释一下你想要做什么,我们可以帮助你。
我担心LINQ to SQL不适用于跨不同数据库的查询。 请参阅下面的可能解决方法?
https://social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/3a15002c-704d-49f9-a8cc-0d2bde186e1d
可以使用两个datacontexts,但不能同时跨两个数据库查询。 但是,您可以使用通用linq语句(linq2objects)获取两个查询中涉及的数据并查询对象。
如果没有先问“ 你想要达到什么目标? ”,这是其中一个不应该回答的问题。
datacontexts是指向同一个数据库还是指向不同的数据库?
如果它们连接到同一个数据库,并且您拥有两个的唯一原因是您已将实体分开,那么您只能使用一个DC来查询“属于”另一个datacontext的表。 只需使用GetTable,L2S将根据类和成员属性解析映射。
如果他们指向同一服务器上的不同数据库,并且您正在连接到其中一个数据库的登录,并且有权从第二个数据库中读取,则可以通过简单地添加来自基于另一个数据库的datacontext中的一个数据库中的表。数据库名称作为.dbml文件中的前缀。
上述就是C#学习教程:如何在一个LINQ请求中使用两个不同的数据上下文?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/954638.html