必须找到一个用户,但有多少安塔尔

时间:2015-04-21 21:14:40

标签: c# linq

我现在正在努力构建LINQ,直到需要从用户那里检索有关您必须成为朋友的应用程序数量的信息。 - 用户存在于tablen。

venner Numberoffriends = db.venners.Where(UseridFriends => UseridFriends.To == 1 && UseridFriends.Godkendt == 0).Count();
    if(Numberoffriends != null)
    {
    //true 
    }

现在它在这里犯了错误

db.venners.Where(UseridFriends => UseridFriends.To == 1 && UseridFriends.Godkendt == 0).Count();

错误是:类型' int'无法隐式转换为< LinqData.venner'

1 个答案:

答案 0 :(得分:2)

错误是因为Count()扩展方法的返回类型为int,并且您尝试将返回值分配给LinqData.venner

intLinqData.venner没有implicit conversion,因此这是您错误的来源。

您可以通过将代码重构为以下等效代码来确认:

int count = db.venners.Where(UseridFriends => UseridFriends.To == 1 && UseridFriends.Godkendt == 0).Count();
venner Numberoffriends = count;
if ( Numberoffriends != null )
{
    //true 
}

将您的编译错误转移到

venner Numberoffriends = count;

线。


从您的代码中可以看出,您需要FirstOrDefault()ToList()之类的内容,而不是计数(使用Count()方法)。这将使您能够使用venner个对象

我认为以下内容会构建,但我不确定您的意图,因此,如果它是您想要的:

List<venner> venners = db.venners
    .Where(UseridFriends => UseridFriends.To == 1 && UseridFriends.Godkendt == 0)
    .ToList();

if ( venners.Count != 0 )
{
    //true 
    // do something with venners here
}

你想用你的linq做什么