我对ASP.Net MVC和Entitity Framework都没有太多的经验。
问题如下:我确实有税码集、组织和表'DisplayData‘的数据库表,该表包含哪些集合与哪个组织相关联的信息。返回所有组织和所有税码集非常有效。但是现在我应该能够根据所选择的组织来构建税码列表。
到目前为止相关代码如下所示:
IEnumerable<TaxCodes> taxcodelist = null;
IEnumerable<Organizations> orglist = null;
IEnumerable<DisplayData> taxcodeids = null;
model.OrgId = Convert.ToInt64(Request.QueryString["OrgId"]);
if (model.OrgId == 0)
model.OrgId = 1;
taxcodelist = db.TaxCodes.AsNoTracking().Distinct().OrderBy(s => s.Id).ToList();
orglist = db.Organizations.AsNoTracking().Distinct().OrderBy(s => s.org_id).ToList();
taxcodeids = db.DisplayData.Where(s=>s.CompanyId == model.OrgId).ToList();
model.TaxCodeList = new SelectList(taxcodelist, "ID", "Name");
model.OrgList = new SelectList(orglist, "org_id", "org_name");
好吧,这是可行的,但真正的问题是如何使我的TaxCodeList只包含与组织匹配的选项?
提前感谢您的帮助!
发布于 2013-07-11 18:32:48
试试这样的东西
taxcodeids = db.DisplayData.Where(s=>s.CompanyId == model.OrgId).ToList();
taxcodelist = db.TaxCodes.AsNoTracking().Distinct().Where(x=> taxcodeids.Contains(y => y.ID == x.TAX_CODE_ID)).OrderBy(s => s.Id).ToList();
orglist = db.Organizations.AsNoTracking().Distinct().OrderBy(s => s.org_id).ToList();
model.TaxCodeList = new SelectList(taxcodelist, "ID", "Name");
model.OrgList = new SelectList(orglist, "org_id", "org_name");
有更干净的方法来做这件事,现在就去做吧
from dd in db.DisplayData
join tc in db.TaxCodes on dd.TAX_CODE_ID equals tc.ID
where dd.CompanyId == model.OrgId
select tc
这应该可以做到,请记住,我还没有测试过
https://stackoverflow.com/questions/17590262
复制相似问题