我正在 MVC3 上制作一个 Web 应用程序,并且我正在使用 linq 与数据库进行通信。
我制作了一个复选框列表,用户可以在其中根据自己的选择选择一些选项,并将其保存在数据库表中。问题出在编辑部分。
整个场景是这样的:
用户可以注册为餐厅老板或汽车旅馆老板,我已将不同的 Business_Type_Id 分配为 1 和 2 以区分这两者,我为餐厅业务类型分配了“2”,并将美食与特定业务类型映射到相同的“Cuisines”表,通过将“BusinessType”列添加到表中。用户将为其业务分配一个 Business_Id。我提供了一个复选框列表,它从我提供了美食列表的数据库表“Cuisines”中生成其选项。从前端,用户可以根据他们在餐厅提供的选择来选择多种美食。选择可能因一个餐厅所有者而异,因此我将每个餐厅所有者的选定值存储在“
这是我在控制器中使用的 linq 连接代码:
[HttpGet]
public ActionResult Edit(int id)
{
using (var chkl = new BusinessEntities())
{
var data = (from CuisinesData in chkl.Cuisines
join BusinessCuisineMappingData in chkl.BusinessCuisineMapping
on new { CuisinesData.Id, id } equals new { BusinessCuisineMappingData.CuisinesId, BusinessCuisineMappingData.BusinessId }
where CuisinesData.BusinessTypeId == 2
select new CusinesDTO
{
Id = CuisinesData.Id,
Name = CuisinesData.Name,
IsSelected = BusinessCuisineMappingData.CuisinesId == null ? false : true
}).Distinct().ToList();
ViewBag.CuisineList = data;
}
return View();
}
这是我的 DTO 课程:
public class CusinesDTO
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsSelected { get; set; }
}
我想将“id”与我的 LINQ 连接中的“BusinessCuisineMappingData.BusinessId”字段相匹配,我通过 [HttpGet] Actionresult Edit(int id) 获得该字段。当我尝试实现它时,它会提示我一个错误。