SQL/LINQ调试帮助 [英] Help with SQL/LINQ Debugging

查看:88
本文介绍了SQL/LINQ调试帮助的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在处理以下语句时遇到麻烦,该语句返回错误序列不包含任何元素":

I'm having trouble with the following statement, which is returning the error "Sequence contains no elements":

var vUser = (from u in this.dcLAUNCHOnline.aspnet_Users
                             where u.UserName.Equals(this.wCreateUser.UserName)
                             select u).Single();

正在生成的SQL:

SELECT [t0].[ApplicationId],
 [t0].[UserId],
 [t0].[UserName],
 [t0].[LoweredUserName],
 [t0].[MobileAlias],
 [t0].[IsAnonymous],
 [t0].[LastActivityDate],
 [t0].[FirstName],
 [t0].[LastName],
 [t0].[Address_Street],
 [t0].[Address_City],
 [t0].[Address_Province],
 [t0].[Address_Country],
 [t0].[Address_PostalCode],
 [t0].[Telephone_Main_AreaCode],
 [t0].[Telephone_Main_Prefix],
 [t0].[Telephone_Main_LineNumber],
 [t0].[Telephone_Main_Extension],
 [t0].[Telephone_Mobile_AreaCode],
 [t0].[Telephone_Mobile_Prefix],
 [t0].[Telephone_Mobile_LineNumber],
 [t0].[Telephone_Mobile_Extension],
 [t0].[Telephone_Other_AreaCode],
 [t0].[Telephone_Other_Prefix],
 [t0].[Telephone_Other_LineNumber],
 [t0].[Telephone_Other_Extension],
 [t0].[Gender],
 [t0].[BirthDate]
FROM [dbo].[aspnet_Users] AS [t0]
WHERE [t0].[UserName] = @p0
-- @p0: Input NVarChar (Size = 20; Prec = 0; Scale = 0) [six.string@gmail.com]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.4918

在SQL Server Management Studio中运行时,脚本确实返回我期望的行(在表中)

When run in SQL server management studio, the script does return the row I expect (which is in the table)

我用这一行定义了p0:

I defined p0 with this line:

DECLARE @p0 NVarChar(20) = 'six.string@gmail.com'

有什么想法为什么会失败?谢谢!

Any ideas why this is failing? Thanks!

推荐答案

仅当查询产生无结果时,才会抛出您得到的InvalidOperationException.

The InvalidOperationException that you are getting is thrown only when the query yielded no results.

我唯一想到的是(因为您确定数据库中存在该行),所以您可能正在连接到其他数据库.

The only thing that comes to my mind, (since you say that you are sure that the row exists on the database), is that you are maybe connecting to other database.

检查您的DataContext的连接字符串,并确保查询的数据库与Management Studio中的数据库相同.

Check your DataContext's connection string and make sure you are querying the same database as in Management Studio.

顺便说一句,您正在直接查询 SqlMembershipProvider aspnet_Users表,以按UserName查找用户,您可能希望查看

BTW, you are querying directly the SqlMembershipProvider aspnet_Users table, to find users by UserName, you might want to give a look to the Membership.FindUsersByName method.

这篇关于SQL/LINQ调试帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆