MVC3 で Web アプリケーションを作成しており、linq を使用してデータベースと通信しています。
チェックボックスリストを作成しました。ユーザーは選択に応じていくつかのオプションを選択でき、データベーステーブルに保存されます。問題は編集部分にあります。
シナリオ全体は次のようなものです。
ユーザーは、レストランのオーナーまたはモーテルのオーナーとして登録できます。これら 2 つを区別するために、異なる Business_Type_Id を 1 と 2 に割り当てました。レストランのビジネス タイプに「2」を割り当て、特定のビジネス タイプで料理をマッピングしました。テーブルに「BusinessType」列を追加することにより、同じ「Cuisines」テーブル。ユーザーには、ビジネスの 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; }
}
[HttpGet] Actionresult Edit(int id) を介して取得している LINQ 結合で、「id」を「BusinessCuisineMappingData.BusinessId」フィールドと比較したいと考えています。実装しようとするとエラーが表示されます。