【发布时间】:2014-07-09 22:34:51
【问题描述】:
我正在尝试从数据库中获取值,它与原始 sql 查询完美配合,但不适用于 linq。我正在分享我的代码,请指导我
LINQ:
using (var db = new SContext())
{
var abc = db.Locales
.Where(c => c.Culture == cultureName && c.Key == key)
.Select(a => a.Value);
return abc.ToString();
}
SQL RAW(完美运行)
using (var conn = new SqlConnection(_connectionString))
{
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT [Value] FROM [Spenotics].[dbo].[Locale] WHERE [Key] = @key AND [Culture] = @culture";
cmd.Parameters.AddWithValue("key", key);
cmd.Parameters.AddWithValue("culture", cultureName);
conn.Open();
var value = cmd.ExecuteScalar();
return (string)value;
}
}
我想将 sql 查询转换为 linq,但它给出错误“对象引用未设置为对象的实例”
【问题讨论】:
-
请使用stackoverflow.com/q/4660142/87698 确定究竟在哪里发生异常。
-
在您的 linq 语句的末尾添加一个
.First(),在 select 之后?这应该为您提供值而不是 IQueryable 值。 -
你需要添加 .FirstOrDefault()
-
@SarahBourt 我已经使用了你的方法,但它给出了这个错误“序列不包含元素”
-
@Maarten 你的方法有效,谢谢:)
标签: c# sql asp.net-mvc linq asp.net-mvc-4