【发布时间】:2012-12-08 05:36:15
【问题描述】:
我有以下情况:我需要创建一些临时表来优化最近发生的负载问题。 LINQ to SQL 似乎不适用于临时表,除非它们映射到 DBML。老实说,我仍然不明白范围如何在 LINQ to SQL 上工作。考虑到这一点,我在 DBML 上定义了每个临时表。
但是,和往常一样,事情不可能那么容易。我无法在编译时间(这是 linq 需要的)定义我的临时表将具有什么名称,因为它将在用户登录系统时定义。补充一点:我会有几个这样的动态临时表,所以我无法将它们全部映射到 DBML。
当我尝试通过executeCommand 创建临时表时,选择其结果并将其转换为强类型 (TempTableDefinition)。但是,当我尝试在这个新创建的临时表上插入值时,我得到一个 SQLException 说“无效的对象名称 #NewTempTable”(这是我用来创建表的同名)。
看来我将不得不使用纯旧的普通 ADO.NET 来创建每个临时表并将其属性映射到强类型对象(我更喜欢这种方法)。我真的不想将 ADO.NET 与 LINQ 混合使用,因为我刚刚读到这是一个坏主意。另外,与 ADO.NET 方式相比,我更喜欢强类型对象的 linq 方法。
简历: 那么,您知道或者甚至可以创建 linq to sql 可以使用的动态临时表吗?我无法在编译时定义它的名称,只能在执行时定义。任何提示将不胜感激。
【问题讨论】:
-
Linq to Sql 不是一个全面的解决方案。与任何其他 ORM 一样,它涵盖了您可能想要对数据库执行的大约 80% 的操作。剩下的 20% 更适合其他技术。
-
@Robert 所以,你会建议我使用普通的旧 ADO.Net 来做吗?除了它,我想不出任何其他解决方案。
标签: c# linq-to-sql temp-tables