实体连接以在查找表中显示名称
本文关键字:显示 查找 连接 实体 | 更新日期: 2023-09-27 17:50:46
我使用EF Code第一(混合,数据库生成禁用),我有两个模型/表。我尝试选择并返回T1中的所有值和引用/查找表中的一个字段,这样我就可以在不请求数据库的情况下对列表执行过滤。我需要ItemName的值可用,这样我才能进行比较。
如果我使用SQL,我就这样做:
SELECT s.*, im.ItemName
FROM Specs s
INNER JOIN ItemMake im ON s.ItemMakeID = im.ID
我的类是这样的:
public class Spec {
public int ID {get; set;}
public int ItemMakeID {get; set;}
[ForeignKey("ItemMakeID")]
public ItemMake itemMake {get; set;}
}
public class ItemMake {
public int ID {get; set;}
public string ItemName {get; set;}
}
目前我的Linq到EF查询看起来像这样。这行不通。我不能像我需要的那样获得ItemName属性。
var specs = (from s in db.Specs
join im in db.ItemMakes on s.ItemMakeID equals im.ID
orderby s.modelNo select s).ToList();
我做错了什么?
这是因为您在select
子句中只选择了s
。使用匿名类型声明来获取ItemName
:
var specs = (from s in db.Specs
join im in db.ItemMakes on s.ItemMakeID equals im.ID
orderby s.modelNo select new { s, im.ItemName }).ToList();