繁体   English   中英

LINQ到SQL; 处理ExecuteQuery的单个返回值

[英]linq-to-sql; handling a single returned value from ExecuteQuery

我有一个使用Linq-to-SQL连接到SQL Server 2008数据库的C#应用​​程序。

我需要通过使用ExecuteQuery函数执行查询来从数据库中获取单个值。 ExecuteQuery返回IEnumerable<> ,我试图使用( First()FirstOrDefault()Single()等)来获取返回列表的第一项,但是没有任何效果,总是抛出InvalidCastException异常。

DataClasses1DataContext dc = new DataClasses1DataContext();
<long> ll =  dc.ExecuteQuery<long>(@"SELECT IDENT_CURRENT('invoice_glass_lens')");

即使在使用.First()或其他方法之前,也会引发该异常,并且列表ll不包含任何内容。 看来问题出在尝试为IEnumerable分配一个值,我只是不知道该怎么办>

由于IDENT_CURRENT返回NUMERIC(38,0)你需要使用一个decimal在.NET来处理返回值:

using (DataClasses1DataContext dc = new DataClasses1DataContext()) 
{
   decimal? ll =  dc.ExecuteQuery<decimal>(@"SELECT IDENT_CURRENT('invoice_glass_lens')").FirstOrDefault;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM