gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:21:05 24 4
gpt4 key购买 nike

我有一个包含超过 300 个表的 SQL Server 2008 数据库。我必须设计的应用程序是 Windows 窗体应用程序、.NET 3.5、C#。

使用 Linq-to-SQL 的最佳方式是什么?

我打算为每个业务实体创建一个数据上下文。

有什么问题吗?

我想知道这种使用 Linq-to-SQL 的方式是否有任何缺点或会产生性能问题?

谢谢。

最佳答案

通常每个数据库应该有 1 个 DBML 文件(=数据上下文)。您当然不应该为每个业务实体创建一个 DataContext,因为这样做会使您失去 LINQ to SQL 的大部分有用功能,例如内存事务(工作单元)、延迟加载和执行 LINQ查询多个实体。

您有一个相当大的模型(+300 个表),这意味着有很多实体。很多实体不是大问题,除了 LINQ to SQL 设计器。使用设计器处理如此大的模型可能会很烦人。这可能是将一个域拆分为多个子域(每个子域都有一个 DBML 文件)的原因,但肯定不是每个实体一个。但是,请记住,您在域的边界处失去了 L2S 功能。

过去,我建议一个团队将他们的 +150 个实体域拆分为 5 个 DBML 文件,将它们合并回一个 DBML。编辑模型的痛苦增加了,但使用多个 DataContext 的痛苦消失了,这大大降低了他们的整体痛苦。

关于c# - Linq-to-SQL:有多少数据上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2935429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com