这是我的设置。
基本模型
public class Base
{
public int BaseID { get; set; }
[StringLength(8)]
[Index(IsUnique = true)]
public string BaseNumber { get; set; }
public ICollection<BillOfMaterial> billOfMaterials { get; set; }
}
物料清单模型
public class BillOfMaterial
{
public int BillOfMaterialID { get; set; }
[StringLength(10)]
[Index(IsUnique = true)]
public string BomNumber { get; set; }
public ICollection<Base> Bases { get; set; }
}
我要尝试的是选择所有基数等于输入基数的物料清单BomNumbers。
我尝试过的事情
BaseNumber = "A1C1D001";
var BOMQuery = (from Base in db.Bases.Include("BillOfMaterials")
where Base.BaseNumber == BaseNumber
select Base.billOfMaterials.ToList());
尝试创建此查询时,当我执行=>选择Base.BillOfMaterials时,看不到BomNumber属性。(找不到属性)
我尝试使用.include()扩展名尝试引入相关表,希望它将给我该属性。不知道如何确切地表达这个问题,以使谷歌搜索一个好的答案。我在这里做错了什么?任何帮助将不胜感激。
谢谢
答案 0 :(得分:2)
当您只需要BOM表列表时,请执行以下操作:
var BOMQuery = db.Bases
.Where(x => x.BaseNumber == BaseNumber)
.SelectMany(a => a.billOfMaterials.Select(b => b.BomNumber)).ToList();
然后您可以像这样将其添加到ObservableCollection中:
BomList = new ObservableCollection<string>(BOMQuery);