我有实体框架代码,如下所示。我在哪里出现以下错误条件。使用“where”:无法将lambda表达式转换为类型'bool'
无法转换lambda表达式“BOOL”类型,因为它不是一个委托类型
如何克服这个问题?这个错误的原因是什么?
static void Main(string[] args)
{
ClubCreation();
List<Club> selectedClubs = GetClubs("club1");
}
public static void ClubCreation()
{
string connectionstring = "Data Source=.;Initial Catalog=NerdDinners;Integrated Security=True;Connect Timeout=30";
using (var db = new NerdDinners(connectionstring))
{
Club club1 = new Club();
club1.ClubName = "club1";
Club club2 = new Club();
club2.ClubName = "club2";
Club club3 = new Club();
club3.ClubName = "club3";
db.Clubs.Add(club1);
db.Clubs.Add(club2);
db.Clubs.Add(club3);
int recordsAffected = db.SaveChanges();
}
}
public static List<Club> GetClubs(string clubName)
{
string connectionstring = "Data Source=.;Initial Catalog=NerdDinners;Integrated Security=True;Connect Timeout=30";
using (var db = new NerdDinners(connectionstring))
{
Club club1 = new Club();
Club club2 = new Club();
Club club3 = new Club();
var query = from o in db.Clubs
where (p => p.ClubName == "club1")
select o;
return query.ToList();
}
}
'p'应该是什么?在我看来,就像您在LINQ查询中使用的“o”的拼写错误。 – BoltClock 2012-07-25 07:54:42
为什么你在你的情况下对''club1''进行硬编码而不是使用'clubName'参数? – 2012-07-25 07:55:34