为了在ASP.net 3.5应用程序中充分使用LinqToSql,需要创建DataContext classes(通常使用VS 2008中的设计工具完成)。从UI角度看,DataContext是您想通过LinqToSql公开的数据库部分的设计,并且在设置LinqToSql的ORM功能方面是不可或缺的。
我的问题是:我正在设置一个使用大型数据库的项目,其中所有表都通过外键相互连接。我的第一反应是制作一个巨大的DataContext类来模拟整个数据库。这样,理论上我可以使用通过LinqToSql生成的外键连接轻松地在代码中转换相关对象、插入相关对象等(虽然我不知道这在实践中是否有必要)。
然而,经过一些思考,我现在认为创建多个DataContext类可能更有意义,每个类与数据库中的特定命名空间或逻辑相关部分相关联。我的主要担忧是,为了与数据库的特定区域进行单独操作,每次实例化和处理一个巨大的DataContext类都会对应用程序资源造成不必要的压力。此外,创建和管理较小的DataContext文件比一个大文件更容易。我将失去的是,在LinqToSql中无法浏览一些远程数据库部分(即使一系列关系将它们连接在实际数据库中)。此外,有些表类将存在于多个DataContext中。
你是否有任何想法或经验,是否应该使用多个DataContext(对应于DB名称空间)来替代(或除了)一个非常大的DataContext类(对应于整个DB)?
我的问题是:我正在设置一个使用大型数据库的项目,其中所有表都通过外键相互连接。我的第一反应是制作一个巨大的DataContext类来模拟整个数据库。这样,理论上我可以使用通过LinqToSql生成的外键连接轻松地在代码中转换相关对象、插入相关对象等(虽然我不知道这在实践中是否有必要)。
然而,经过一些思考,我现在认为创建多个DataContext类可能更有意义,每个类与数据库中的特定命名空间或逻辑相关部分相关联。我的主要担忧是,为了与数据库的特定区域进行单独操作,每次实例化和处理一个巨大的DataContext类都会对应用程序资源造成不必要的压力。此外,创建和管理较小的DataContext文件比一个大文件更容易。我将失去的是,在LinqToSql中无法浏览一些远程数据库部分(即使一系列关系将它们连接在实际数据库中)。此外,有些表类将存在于多个DataContext中。
你是否有任何想法或经验,是否应该使用多个DataContext(对应于DB名称空间)来替代(或除了)一个非常大的DataContext类(对应于整个DB)?