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

linq to ef 外键怎么做为条件实现查询?
   var xl = db.xianlu.Where(x => x.id == id).FirstOrDefault();
   var jh = db.jihua.Where(j => j.xianlu==xl).ToList();


以上是我写的报错


无法创建类型为“结束类型”的常量值。此上下文仅支持基元类型(“例如 Int32、String 和 Guid”)。

请问谁知道哪里写错了?应该怎么做?
------解决方案--------------------
xl 是一整行数据啊,怎么拿来和字段比较
------解决方案--------------------
var xl = db.xianlu.Where(x => x.id == id).FirstOrDefault();
没必要这样写,应该:
var xl = db.xianlu.FirstOrDefault(x => x.id == id);
他得到了符合条件的一系列记录!
 var jh = db.jihua.Where(j => j.xianlu==xl).ToList();
这里面标记的字段xianlu是什么类型的,不管什么类型的都不能使用j.xianlu==xl,数据库中没有把var作为类的字段定义!
------解决方案--------------------
var xl = db.xianlu.Where(x => x.id == id).FirstOrDefault().Id;
  var jh = db.jihua.Where(j => j.xianlu==xl).ToList();

------解决方案--------------------
引用:
var xl = db.xianlu.Where(x => x.id == id).FirstOrDefault().Id;
  var jh = db.jihua.Where(j => j.xianlu==xl).ToList();

j => j.xianlu==xl
这个比较得字段和字段比才行
------解决方案--------------------
最后查出来我写的这两句没有错。错的是视图上多了个}