我正在MVC3上創建Web應用程序,並且正在使用linq與數據庫進行通信。我如何將任何id傳遞給[HttpGet] ActionResult中的linq連接以編輯
我做了一個checkboxlist,用戶可以根據自己的選擇選擇一些選項,並將其保存在數據庫表中。問題出在編輯部分。
整個場景是這樣的:
用戶可以根據餐館老闆或汽車旅館所有者註冊,我已經分配了不同Business_Type_Id爲1和2,區分這兩個,我已經指定「2 '用於餐廳業務類型,並通過將「BusinessType」列添加到表格中,將相同商業類型的菜餚映射到相同的「菜譜」表中。該用戶將被分配Business_Id用於他們的業務。我提供了一個複選框列表,它可以從我提供美食列表的數據庫表「美食」中生成其選項。從前端,用戶可以根據自己的選擇,選擇多種美食,他們在餐廳提供什麼。選擇可能會因餐廳所有者而異,因此我將每個餐館所有者的選定值存儲在「BusinessCuisinesMapping」表中,在該表中,我將特定的BusinessId與該特定用戶所選的CuisineId進行映射。 現在填充菜單列表進行編輯或更新我寫了一個linq連接,但我需要將它與傳遞給[HttpGet] ActionResult Edit的Business_Id進行比較。這就是我卡住的地方。
這是我的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; }
}
我想comape的 「身份證」與我的LINQ連接中的「BusinessCuisineMappingData.BusinessId」字段,我通過[HttpGet] ActionResult Edit(int id)獲取。它會在我嘗試實現時提示錯誤。
你會得到什麼錯誤?你能發表細節嗎? – glosrob
'public ActionResult Edit(int「id」)' - typo?應該沒有引號 – hyp
在我的原代碼中沒有「id」的雙引號,我把這些qutes放在這裏給出一個更好的主意,我想在我的linq連接中使用哪個值。 – Shekhar