をLINQ to SQLの持つ複数のテーブルから選択します。私はこのようなクラス<code>Category</code>を持って
public int id { get; set; }
public string catName { get; set; }
public List<string> subCat { get; set; }
そして、私は2つのテーブル、tblCategory
とtblSubCategory
を持っています。
各カテゴリのすべてのカテゴリとサブカテゴリを選択します。私は以下のコードを試していますが、いくつかのカテゴリにサブカテゴリがなくても、サブカテゴリの穴リストを取得しても、すべてのカテゴリで同じ結果が得られます。
ご協力いただければ幸いです。
public static List<Category> getCategoryList()
{
try
{
using (var db = new LinqToDBAwkoDataContext())
{
var list = from c in db.tblCategories
select new Category
{
id = c.CatId,
catName = c.CatName,
subCat = subCategoriesByCatId(db)
};
return list.ToList();
}
}
catch (Exception ex)
{
throw new Exception("An error has occurred");
}
}
private static List<string> subCategoriesByCatId(LinqToDBAwkoDataContext db)
{
var list = from s in db.tblSubCategories
join c in db.tblCategories on s.CatId equals c.CatId
where s.CatId == c.CatId
select s.SubCatName;
return list.ToList();
}
あなたの最初のヒントは、あなたの 'subCategoriesByCatId'メソッドが実際にカテゴリIDを受け入れないことです。そのメソッドでカテゴリIDを受け入れ、それをサブカテゴリクエリの 'where'句で使用する必要があります。また、サブカテゴリクエリでは結合は必要ありません。 –
私は間違いを今見ます。答えではなく、あなたの答えをコメントにしてください。 –