读书人

linq to ef 外键如何做为条件实现查询

发布时间: 2012-12-15 15:16:03 作者: rapoo

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
这个比较得字段和字段比才行
[解决办法]
最后查出来我写的这两句没有错。错的是视图上多了个}

读书人网 >.NET

热点推荐