我有3个表格Project,Province,ProjProvRel
在我的项目页面中,当我添加数据时,我为每个项目选择多个省
表示我的省份是多选下拉列表。
我插入了正在运行的数据,得到了插入的ID,并使用选定的Province of ID将其添加到ProjProvRel
现在,在详细信息视图中,我想显示我的数据,但无法解决。
这是我的代码:
// GET: Project/Details/5
public ActionResult Details(int? id)
{
if (id == null)
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
var mydata = db.Projects.Find(id);
if (mydata == null)
{
return HttpNotFound();
}
var prov_id = from o in db.ProRel where o.ProjectId.Equals(id) select o.ProvinceIds;
foreach (var p_id in prov_id)
{
int[] PIds = new int[] {p_id};
}
var Prov= from c in db.Provinces where c.ID in pIds;
ViewBag.Province = Prov;
return View(mydata);
}
一个问题是如何根据条件从表中选择数据
var prov_id = from o in db.ProRel where o.ProjectId.Equals(id) select o.ProvinceIds;
上面的查询正确吗?我是ASP.Net MVC的新手
还吹查询是正确的吗?
var Prov= from c in db.Provinces where c.ID in pIds;
如何从Table Province中的PIds中的Province.ID中选择数据
最佳答案
从ProRel中获取ProjectId与ID匹配的行:
var prov_ids = db.ProRel.Where(r => r.ProjectId == id).Select(r => r.ProvinceId);
从prov_id中可以找到省份:
var provs = db.Provinces.Where(p => prov_id.Any(i => p.ID == i));
我希望您不要介意lambda样式的LINQ。
另外,我认为您应该考虑变量命名。例如,prov_id提供了单个id的概念,并且由于您隐式声明了类型,因此很难以其他方式分辨出来。
关于c# - ASP.Net MVC 5 Entity Framework 选择在何处?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27164375/