我有以下情况:我需要创建一些临时表来优化最近发生的加载问题。看起来,LINQ to SQL对临时表不能很好地工作,除非它们映射到DBML上。老实说,我仍然不明白在LINQ to SQL中作用域是如何工作的。考虑到这一点,我去定义DBML上的每个临时表。使用动态临时表
但是,一如往常,事情并不那么容易。我无法定义编译时间(这是linq需要的),我的临时表将具有什么名称,因为它将在用户登录系统时定义。添加更多:我将有几个这样的动态临时表,所以我不能将它全部映射到DBML。
当我试图通过executeCommand
创建临时表时,请选择其结果并将其转换为强类型(TempTableDefinition
)。但是,当我试图在这个新创建的临时表上插入值时,我得到了一个SQLException,说'无效对象名称#NewTempTable'(这是我用来创建表的同名)。
看来,我将不得不使用纯旧的普通ADO.NET来创建每个临时表并将其属性映射到强类型对象(我更喜欢这种方法)。我真的不喜欢将ADO.NET与LINQ混合使用,因为我刚刚读到这是一个糟糕的想法。另外,我更喜欢将强类型对象的linq方法应用于ADO.NET方式。
简历: 所以,你知道或者是它甚至有可能创建动态的临时表是LINQ to SQL中可以工作?我无法在编译时间上定义它的名称,只能在执行时定义它。任何提示将不胜感激。
Linq to Sql不是一个全面的解决方案。像任何其他ORM一样,它涵盖了您可能想要对数据库执行的操作的80%。剩下的20%更适合其他技术。 –
@Robert所以,你会建议我使用普通的旧ADO.Net来做到这一点吗?除了它以外,我无法考虑任何其他解决方案。 – AdrianoRR