2010-05-01 67 views
0

我有以下IQueryable的方法来显示一个SINGL材料的细节,Linq-to-sql连接中的Where条件是否正确?

public IQueryable<Materials> GetMaterial(int id) 
{ 
    return from m in db.Materials 
      join Mt in db.MeasurementTypes on m.MeasurementTypeId equals Mt.Id 
      where m.Mat_id equals id 
      select new Materials() 
      { 
       Id = Convert.ToInt64(m.Mat_id), 
       Mat_Name = m.Mat_Name, 
       Mes_Name = Mt.Name, 
      }; 
} 

任何建议....

+0

那么它看起来对我来说合理没问题(虽然它会帮助你如果你的套中一致) - 我唯一直接关心的是Convert.ToInt64 ...为什么你的Materials类使用不同的ID类型? *你为什么担心?它不起作用吗?如果没有,以什么方式*不起作用? – 2010-05-01 07:27:00

回答

0

where条款应是一个布尔表达式,像这样:

where m.Mat_id == id 

您使用关键字equals进行连接,但where子句应该使用布尔表达式,可以这样想:无论在where something它应该如何k好像它在if(something)

相关问题