当前位置: 首页 > 面试题库 >

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

严项明
2023-03-14
问题内容

我有一个包含300多个表的SQL Server 2008数据库。我必须设计的应用程序是Windows Forms应用程序,.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。编辑模型的痛苦增加了,但是使用多个DataContexts的痛苦消失了,这大大降低了他们的总体痛苦。



 类似资料:
  • 问题内容: 我在SQL中有此查询,并且希望它使用Entity Framework 在LINQ中实现它,但是如何应用左外部联接的多个表? 问题答案: 这是使用LINQ实现左外部联接的方式。您应该使用GroupJoin(语法): 该查询联接了三个表。您可以以相同的方式加入其余表。

  • 问题内容: 给定一个简单的模式,例如PurchaseOrders {OrderId,Total,LineItemCount},我想为一些简单的统计信息生成一个简单的查询,如下所示: 但是在Linq to Sql中,我正在努力将其纳入一个查询中。 目前,我有这个: 有没有一种方法可以将其作为一个查询来完成? 问题答案: 我能想到的是给它一个假的group-by子句。它可以正常工作,并能按您期望的那样

  • 问题内容: 我正在尝试转换此查询(已经可以使用) 对于Linq to SQL,但我不知道自己在做什么错。看我的尝试 我只需要对建筑物进行分组并计算每个建筑物有多少用户。 问题答案: 只需使用以下方法:

  • 问题内容: 有没有可以将SQL语法转换为LINQ语法的工具? 我只想用join等将基本查询重写为LINQ。这样可以节省很多时间。 问题答案: 编辑7/17/2020:我无法删除这个已接受的答案。它曾经是很好的,但现在不是。伙计们,要当心真正的老帖子。我正在删除链接。 [ Linqer ]是将SQL转换为LINQ的工具。它可以帮助您学习LINQ并转换现有的SQL语句。 并非每个SQL语句都可以转换为

  • 问题内容: 给出下表: 我想产生一个单列/行: 我可以在SQL中执行以下操作: 但是我不知道如何在LINQ中做到这一点。 我最接近的是: 产生一列两行: 转换对于这个问题并不重要。尽管所有列都是整数,但这些列被定义为浮点数。关键是COALESCE函数,我无法弄清楚如何在LINQ中做到这一点。 问题答案: 我不认为LINQ to SQL支持此T-SQL技巧。COALESCE并不是真正的问题(正如Me

  • 问题内容: 我对此进行了一些研究,并浏览了StackOverflow上的一些文章以及一些博客文章,但是没有找到确切的答案。我还读到可以使用4.0框架来实现,但尚未找到任何支持证据。 所以我的问题是,是否可以通过LINQ to SQL查询执行SOUNDEX? 问题答案: 您可以通过使用伪造的UDF在数据库上执行此操作;在部分类中,向数据上下文添加一个方法: 您可以使用像这样的表达式: