![](/img/trans.png)
[英]How to map an extra field from ExecuteQuery() in LINQ-TO-SQL but retain the LINQ entity
[英]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.