当前位置: 首页 > 编程语言 > C#

Linq-to-SQL:有多少数据上下文?

时间:2023-04-11 00:23:07 C#

Linq-to-SQL:有多少数据上下文?我有一个包含>300个表的SQLServer2008数据库。我必须设计的应用程序是Windows窗体应用程序、.NET3.5、C#。哪种是使用Linq-to-SQL的最佳方式?我计划为每个业务实体创建一个数据上下文。任何问题?我需要知道这种使用Linq-to-SQL的方式是否有任何缺点或者是否会产生性能问题?谢谢。每个数据库通常应该有一个单独的DBML文件(=数据上下文)。您当然不应该为每个业务实体创建一个DataContext,因为这样做会使您失去LINQtoSQL的大部分有用功能,例如内存中事务(工作单元)、延迟加载和对多个执行LINQ查询实体。您有一个非常大的模型(+300个表),这意味着有很多实体。除了LINQtoSQL设计器之外,很多实体不是一个大问题。使用具有如此大模型的设计师可能会非常烦人。这可能是将域拆分为多个子域(每个子域都有一个DBML文件)的原因,但肯定不是每个实体一个域。但是,请记住,您会在域边界失去L2S功能。过去,我曾建议一个团队将5个DBML文件中的+150个实体字段分开,然后将它们合并到一个DBML中。编辑模型的痛苦增加了,但使用多个DataContext的痛苦消失了,这大大降低了他们的整体痛苦。为每个业务实体创建一个数据上下文没有意义,每个数据库只需要一个数据上下文。这取决于有多少用户同时使用你的数据库,而不是有多少表。那么关于典型的数据库问题:连接数、锁定和其他问题。我目前对整个数据库使用1,但还有更多合法用途。例如,我在安装连接到远程数据库的站点时运行脚本,并将数据导入并将数据转换为新格式以进行部署。该过程使用一些临时表。通过将登台表放在单独的上下文中,我可以在站点部署后简单地删除这些上下文和代码,因为它们是单独的实体。以上是C#学习教程:Linq-to-SQL:Howmanydatacontexts?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: