C# LINQ到SQL类

C# LINQ到SQL类,c#,sql,linq,C#,Sql,Linq,使用一个包含所有表的fat数据上下文类更好,还是将它们分成更小的类,并可能使用“单表”类更好 从组织的角度来看,我觉得我不应该在几个数据上下文中分割关系(我甚至认为这是不可行的)。但另一方面,我认为创建一个fat类的全新实例只是为了查询一个单独的、不相关的表是一种过分的做法 你觉得怎么样 取决于您拥有的表的数量。如果它说少于,比方说,20,我个人不会把它分开 如果您愿意,可以按任务、关系或目的进行划分 我想说,由你决定,真的。在决定是否将它们拆分时,我首先要考虑的是“哪种方式最易于维护?”。构建

使用一个包含所有表的fat数据上下文类更好,还是将它们分成更小的类,并可能使用“单表”类更好

从组织的角度来看,我觉得我不应该在几个数据上下文中分割关系(我甚至认为这是不可行的)。但另一方面,我认为创建一个fat类的全新实例只是为了查询一个单独的、不相关的表是一种过分的做法


你觉得怎么样

取决于您拥有的表的数量。如果它说少于,比方说,20,我个人不会把它分开

如果您愿意,可以按任务、关系或目的进行划分


我想说,由你决定,真的。在决定是否将它们拆分时,我首先要考虑的是“哪种方式最易于维护?”。

构建一个数据上下文并不昂贵,无论它管理多少个表,因此在决定是否有一个或多个单独的数据上下文实现时,这不应该是一个标准。新的数据上下文在实际开始使用之前是“空的”,并且根据需要创建表实例

使数据上下文实例变得昂贵的是,当您反复使用同一实例来跟踪对不同对象的更改时——例如,在ASP.NET应用程序中使用数据上下文的缓存实例来执行所有数据库操作(现在这是不允许的)

只要按照预期使用数据上下文,在工作单元模式中,它可以在类定义级别管理多少表并不重要,因为您只实例化当前工作单元中需要的表


对我来说,数据上下文在逻辑上表示目标数据库,因此它应该表示该数据库中映射的所有实体,无论是10个还是100个-将其拆分除了在给定类中减少代码行之外没有其他好处,但是如果您关心这一点,那么请务必,有不同的课程。

谢谢。我不确定实例开销,所以我认为您很好地解决了这个问题。事实上,在这个项目中,我将动态数据用于管理目的,而MVC用于前端。我最终使用了相同的LINQtoSQL类,我想我会继续使用它。