【发布时间】:2013-04-01 03:12:26
【问题描述】:
我正在尝试仅使用 LinqPad 将存储的 Proc 转换为 LINQ。我在 Linq 中有以下代码
var myVar = (from st in Student
where st.name == "abcd"
select st).Take(10);
if (myVar.Any())
{
// some statements
}
else
{
myVar = (from emp in Employee
where emp.name == "abcd"
select emp).Take(10);
}
但它在 else 块中的选择行出现以下错误
Cannot implicitly convert type 'System.Linq.IQueryable<AnonymousType#1>' to 'System.Linq.IQueryable<AnonymousType#2>'
谁能知道发生了什么?如何解决?如何在 Linq 中显式转换类型?
两个表中的列不同。而且我没有使用实体框架等任何框架。我只有应用程序的数据库,我正在尝试将所有存储过程转换为 LINQ。在存储过程中,两个值都被捕获在同一个变量中,这就是为什么我需要它们在同一个变量中。那么在这种情况下有可能吗?
【问题讨论】:
-
看起来很明显,您使用相同的变量来引用两个不兼容的类型。
var不是动态的。修复 that 很容易,为第二个查询声明一个不同的变量。但是完全解决您的问题需要了解您打算做什么。 -
感谢您的评论,但我正在尝试将 Stored Proc 转换为 Linq,因为这两个值都在同一个变量中。
标签: sql linq stored-procedures