2015-03-13 67 views
0

我正在尝试使用下面的代码来执行与实体框架的表上的更新。 where语句只有在删除和时才会起作用,并且会带来结果,但结果为null。我知道我正在寻找的价值存在。多个条件与linq和列表

foreach (fdd element in FddList) 
{ 
    var slist = context.ResidenceFDDs.ToList<ResidenceFDD>(); 

    ResidenceFDD fddtoupdate = slist 
     .Where(s => 
      s.StName.Contains("Adrienne") && 
      s.StNum == element.addressnumb.ToString()) 
     .FirstOrDefault<ResidenceFDD>(); 

    fddtoupdate.Comments = "Comment newly added."; 

    context.SaveChanges(); 
} 
+0

你可以连他们,而不是如果你想调试。例如slist.Where()。Where()or slist.Where(); slist.Where() – MiniRagnarok 2015-03-13 15:27:09

+5

您确定有符合两个条件的条目吗?也许你有条目匹配一个或另一个,但不是两个。 – JLRishe 2015-03-13 15:27:59

+0

杜。你认为我不会测试这个以确保匹配的东西来临。 。 。 。 。 。它完全不符合。我忘记了C#和Sql中的大写和小写。这一直是我的问题。 – 2015-03-13 16:58:43

回答

0

如果您使用的.toString()然后使用如下

ResidenceFDD fddtoupdate = slist.Where(
    s => 
     s.StName.Contains("Adrienne") && 
     s.StNum == element.addressnumb.ToString()) 
    .FirstOrDefault<ResidenceFDD>().AsEnumerable(); 
+0

我也可以删除tostring()而不使用asenumerable?它似乎不喜欢在这个声明中使用一个可数。 – 2015-03-13 15:53:27