2015-10-19 91 views

回答

2

使用FirstOrDefault: -

User us = (from s in entities.Users 
      where s.Username.Equals(username) 
      select s).FirstOrDefault(); 

您的查询返回多个结果,但你想存储在AuthenticationApp.Models.User可容纳因此只有一个对象转换错误。

或者更好的是 -

User us = entities.Users.FirstOrDefault(x => x.Username.Equals(username)); 

更新:

如果你相信它会返回仅有1对象回来,你可以使用SingleOrDefault了。检查两个here之间的差异。

+0

即使我知道我只会得到一个结果? – user3762810

+0

@ user3762810 - 没有得到你。你知道只有1个'UserName'? –

+2

哦,没关系,我现在明白了。 – user3762810

1

由于投影返回IEnumerableIQueryable),您将收到错误信息。要获得User的名称,您可以使用以下内容:

try 
{ 
    var user = entities.Users.SingleOrDefault(u => u.Username.Equals(username)); 
} 
catch 
{ 
    // handle the case when there are more than 
    // one user with given name in DB 
} 
相关问题