为了在 ASP.net 3.5 应用程序中充分使用 LinqToSql,需要创建DataContext 类(通常使用 VS 2008 中的设计器完成)。从 UI 的角度来看,DataContext 是您希望通过 LinqToSql 公开的数据库部分的设计,并且在设置 LinqToSql 的 ORM 功能时是不可或缺的。
我的问题是:我正在建立一个使用大型数据库的项目,其中所有表都通过外键以某种方式互连。我的第一个倾向是创建一个巨大的 DataContext 类来模拟整个数据库。这样我理论上可以(尽管我不知道在实践中是否需要)使用通过 LinqToSql 生成的外键连接来轻松地在我的代码中的相关对象之间移动,插入相关对象等。
然而,经过一番思考,我现在认为创建多个 DataContext 类可能更有意义,每个类都与我的数据库中的特定命名空间或逻辑相关部分相关。我主要担心的是,始终为与数据库特定区域相关的单个操作实例化和处置一个巨大的 DataContext 类会对应用程序资源造成不必要的影响。此外,创建和管理较小的 DataContext 文件比创建一个大文件更容易。我会失去的事情是,数据库的一些遥远部分将无法通过 LinqToSql 导航(即使在实际数据库中连接它们的关系链)。此外,还会有一些表类存在于多个 DataContext 中。
关于多个 DataContexts(对应于 DB 命名空间)是否适合代替(或补充)一个非常大的 DataContext 类(对应于整个 DB)的任何想法或经验?