如何在没有foreach循环的情况下从查询中获取单行?

时间:2013-09-12 19:38:48

标签: c# .net sql-server

我的数据库中有一个包含三列的表ViewRight

  1. user_id(FK-int)
  2. folder_id(PK-INT)
  3. FOLDER_NAME(VARCHAR(MAX))
  4. 我在c#代码中编写查询以获取表的值。我在下面写了这个查询来获取值 提供ViewRight的{​​{1}}表。

    user_id

    问题我必须使用foreach循环来获取所提供的user_id的folder_id值和folder_name的值。这个foreach循环有单个值。我不想将var query2 = from p in dbContext.ViewRights where p.user_id==user_id select p;用于单个值。我还有其他方法可以在不使用foreach循环的情况下获得这个。

4 个答案:

答案 0 :(得分:2)

使用var vr = query2.SingleOrDefault(x => x.user_id == userid); if(vr != null) Console.WriteLine(vr.folder_id);

我无法相信John Saunders只是复制了我的答案!

答案 1 :(得分:2)

var vr = query2.SingleOrDefault(x => x.user_id == userid); 
if (vr != null)
{
    Console.WriteLine(vr.folder_id);
}

答案 2 :(得分:1)

如果只返回一条记录。 var query2 = (from p in dbContext.ViewRights where p.user_id==user_id select p).FirstOrDefault();

答案 3 :(得分:-1)

.SingleOrDefault将获得一个或多个计数记录

使用

.FirstOrDefault();

我选择.FirstOrDefault