C# LINQ查询执行中出错

C# LINQ查询执行中出错,c#,sql,asp.net-mvc,linq,asp.net-mvc-4,C#,Sql,Asp.net Mvc,Linq,Asp.net Mvc 4,我正在尝试从数据库中获取值,它可以完美地处理原始sql查询,但不能处理linq。我正在分享我的代码,请指导我 林克: SQL原始(工作正常) 我想将sql查询转换为linq,但它会给出错误“对象引用未设置为对象实例”每当您只需要查询中的一个元素时,最好使用下面的一个元素 。First()-如果为空/未找到则抛出,如果重复则不抛出 。FirstOrDefault()-如果为空/未找到,则返回默认值;如果重复,则不抛出 。Single()-如果为空/未找到则抛出,如果存在重复则抛出 var abc

我正在尝试从数据库中获取值,它可以完美地处理原始sql查询,但不能处理linq。我正在分享我的代码,请指导我

林克:

SQL原始(工作正常)


我想将sql查询转换为linq,但它会给出错误“对象引用未设置为对象实例”

每当您只需要查询中的一个元素时,最好使用下面的一个元素

。First()-如果为空/未找到则抛出,如果重复则不抛出

。FirstOrDefault()-如果为空/未找到,则返回默认值;如果重复,则不抛出

。Single()-如果为空/未找到则抛出,如果存在重复则抛出

var abc = db.Locales
                .Where(c => c.Culture == cultureName && c.Key == key)
                .Select(a => a.Value).FirstOrDefault();
。SingleOrDefault()-如果为空/未找到,则返回默认值;如果存在重复项,则抛出

var abc = db.Locales
                .Where(c => c.Culture == cultureName && c.Key == key)
                .Select(a => a.Value).FirstOrDefault();
在SQLRAW中,最好使用TOP1

SELECT TOP 1 [Value] FROM [Spenotics].[dbo].[Locale] WHERE [Key] = @key AND [Culture] = @culture

请使用确定异常发生的确切位置。请在linq语句末尾的select?这应该给你一个值,而不是一个IQueryable的值。你需要添加.FirstOrDefault()@SarahBourt我用过你的方法,但它给出了这个错误“Sequence contains no elements”@Maarten你的方法有效,谢谢:)非常好的解释
SELECT TOP 1 [Value] FROM [Spenotics].[dbo].[Locale] WHERE [Key] = @key AND [Culture] = @culture