![]() |
1
3
我认为使用临时表解决您的问题没有问题。至于混合使用sqlcommands和linq,您对危险因素是绝对正确的。使用DataContext执行SQL语句非常简单,我甚至不担心sqlcommand:
|
![]() |
2
1
我们有一个类似的情况,虽然这是可行的,但问题是您并没有真正处理可查询的,所以您不能轻易地使用这个“with”linq。这不是适用于方法链的解决方案。 我们的最终解决方案只是在存储过程中抛出所需的内容,并在需要这些值时在该过程中针对临时表写入所选内容。这是一种妥协,但两者都是解决办法。至少在存储过程中,设计器将为您生成调用代码,并且您有一个黑盒实现,因此如果需要进一步优化,可以在过程中严格执行,而无需重新编译。 在一个完美的世界中,将来会有一些对编写linq2sql语句的支持,这些语句允许您指示在查询中使用临时表,避免在这种复杂场景中使用讨厌的sql-in语句。 |
![]() |
3
0
作为“通用解决方案”,如果代码在多个线程/应用程序中运行,会怎么样?我认为大列表解决方案总是与问题域相关。对于您正在处理的问题,最好使用常规表。 我曾经在数据库中创建了一个“通用”列表表。该表由三列创建:int、uniqueidentifier和varchar,以及其他用于管理每个列表的列。我在想:“这应该足以应付许多案件。”但很快我就收到一个任务,它要求用三个整数的列表来执行一个连接。此后,我再也没有尝试创建“通用”列表表。 另外,最好创建一个SP,以便在每次数据库调用中向列表表中插入多个项。您可以在少于2 db的往返行程中轻松插入~2000个项目。当然,取决于你在做什么,性能可能并不重要。 编辑:忘记了它是一个临时表,临时表是每个连接的,所以我以前在多线程上的参数不正确。但是,它并不是强制执行固定模式的通用解决方案。 |
![]() |
4
0
尼尔提供的解决方案真的有效吗?如果它是一个临时表,并且每个方法都在创建和处理自己的数据上下文,那么我认为在断开连接后临时表不会仍然存在。 即使它在那里,我认为这将是一个你假设查询和连接是如何被呈现的一些功能的领域,这是Linq to SQL的一个大问题-你只是不知道在工程师们想出更好的方法做事情的时候,可能会发生什么。 我会在存储过程中完成。如果愿意,您可以将结果集返回到预定义的表中。 |
![]() |
sqlrobert · SQL-如何查找不包含特定字段值的一组记录 1 年前 |
![]() |
Nick Fleetwood · 调度语法的LINQ查询 2 年前 |
![]() |
Mateen Bagheri · 选择表的计数并选择其自身 3 年前 |
![]() |
Java · 使用交叉应用同时显示两列 3 年前 |