加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

linq-to-sql – Linq to SQL:为每个页面还是全局页面都有一个小

发布时间:2020-12-12 08:50:10 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用一个使用大量外部键(100个表)的大型数据库的ASP.NET应用程序中的 Linq到SQL.我对 Linq如何允许您创建一个完整的所有关系的数据文本,然后创建自动连接表的Linq语句令我印象深刻.然而,这会导致一个问题:如果我正在提交一个仅用一个或两个表格的Linq
我正在使用一个使用大量外部键(100个表)的大型数据库的ASP.NET应用程序中的 Linq到SQL.我对 Linq如何允许您创建一个完整的所有关系的数据文本,然后创建自动连接表的Linq语句令我印象深刻.然而,这会导致一个问题:如果我正在提交一个仅用一个或两个表格的Linq语句,最好是拥有一个只包含必要表/表的数据报文?在我看来,如果我使用数据库中的所有表构建数据文本,那么它将非常庞大,并且每次使用Linq加载它将对性能产生负面影响.我对吗?

评论:我知道仅仅根据需要创建数据报文(但是谢谢你提到它).问题在于我是否应该有很多小数据文件,或者建立一个大的数据文件是否可以.

解决方法

您应该每一组连接的表中都有一个DataContext.在大多数应用程序中,这意味着一个DataContext的一切.如果你碰巧有几组不需要一起修改的表,你可能会考虑几个DataContexts.如果您甚至可能需要跨DataContexts进行查询,请勿将它们分开.

DataContext不仅仅是一组表 – 它是一种数据网关模式的实现 – 您可以填写返回所需数据的方法,因此您无需将查询硬编码到您的应用.现在,如果你有多个DataContexts,每页一个,你最有可能最终不得不坚持你的共同功能(认为MyDataContext.GetActiveCustomers())在每一个.这将是可怕的重复.

所以答案是建立很多小数据通常是不行的.如果您的数据完全独立(不同的逻辑或物理数据库),或者您正在使用DataContext作为简单的连接对象(这并不意味着),这是唯一可行的.

但请注意,DataContexts应该是短暂的 – 它们是工作单元模式的实现,因此其生命周期应等于一个逻辑操作(例如,加载一组产品或插入新的订单). DataContexts很容易创建和销毁,所以不要浪费时间缓存他们,因为.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读