日期:2014-05-20  浏览次数:20630 次

LINQ查询出现问题?
涉及的数据库表有员工表Staff和套餐表SetMeal,Staff表中的主键为usename,SetMeal中的cook(厨师)列参照useName, Setmeal表中的数据列包括:

  1、setMealID
  2、category
  3、setMealName
  4、picture
  5、cook
  6、price
  7、details
  8、itStatus

在查询SetMeal表所有信息使用
    IEnumerable<setMeal> list = from p in db.SetMeals  select p;


单步调试发现上面LinQ查询时list中除了以上的8列会自动添加一列名为staffuseName的列,使得出现“用户代码未处理 EntityCommandExecutionException ”异常,这种情况怎么解决???
------解决方案--------------------
setMeal映射类是否多定义了个staffuseName?
------解决方案--------------------
调试下,重点关注丢出来的EntityCommandExecutionException对象的Message信息、Trace信息和InnerException(如果有)
------解决方案--------------------
引用:
setMeal映射类是否多定义了个staffuseName?

...
------解决方案--------------------
非常确定没有~~~使用var list = from p in db.SetMeals orderby p.setMealID descending select new { p.setMealID, p.category, p.setMealName, p.picture, p.cook, p.price, p.details };
使用匿名类方法
但又出现其他问题~~~~
------解决方案--------------------
检查代码后,发现在定义类的时候外键没有设定,默认的外键ID和数据库表中的设定主键不统一。