我有一个接受字符串列表的控制器。这些字符串本质上是用户在视图上选择的ID。我需要根据字段到表格来构建模型,因此需要连接。下面的代码不会构建,因为它声称连接表中的属性不存在。它只接受表1的值。 Item.Well_No和Item.Well_Name抛出错误。这些包含在" y"我加入" x" ..
的表格[HttpPost]
public ActionResult buildSelectionTable(List<string> dta)
{
var a = from x in db._AGREEMENTS
join y in db.WELL_AGMT_XREF on x.AGMT_NUM equals y.AGMT_NUM
where dta.Contains(x.AGMT_NUM)
select x;
List<AgmtModel> model = new List<AgmtModel>();
foreach (var item in a)
{
model.Add(new AgmtModel { Agmt_Name = item.AGMT_NAME, Agmt_Num = item.AGMT_NUM, Agmt_Type = item.AGMT_TYPE_DESCR, Amnt_Status = item.AGMT_STAT_DESCR, Company = item.CO_NAME, DaysToExp = item.DaysToExp, Drs_Url = item.DRS_URL, Effective_Date = item.EFF_DT, Orig_Lessee = item.ORIG_LESSEE, Prop_Status = item.AGMT_PROP_STAT_DESCR, Expiration_Date = item.EXPR_DATE, Acreage = item.LGL_AREA, Extention_Expiration = item.EXTN_EXPR_DT, WellNo = item.WELL_NO, Well_Name = item.WELL_NAME });
}
return PartialView("_SelectionTable", model);
}
答案 0 :(得分:1)
您只需在查询中选择x
,您还需要选择y并引用它。
将select x
更改为select new { x, y}
然后
foreach (var item in a)
{
model.Add(new AgmtModel { Agmt_Name = item.y.AGMT_NAME, Agmt_Num = item.x.AGMT_NUM ... });
}
您需要在字段前插入.x
或.y
以确定字段名称
或者你可以将构造函数直接放在查询
中所以而不是select x
select new AgmtModel { Agmt_Name = y.AGMT_NAME, etc...}
然后你可以return PartialView("_SelectionTable", a.ToList())