问题描述
我在处理以下语句时遇到麻烦,该语句返回错误序列不包含任何元素":
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) [[email protected]]
-- 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) = '[email protected]'
有什么想法为什么会失败?谢谢!
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
查找用户,您可能希望查看 Membership.FindUsersByName
方法.
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调试帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!