1
私の問題は、データモデルに「サブデータモデル」を設定しています この場合、私は多くの製品を入手しました。各製品は分類されていますが、一部の製品はまったく分類されていません。製品は、いくつかのカテゴリにリンクすることさえできます。どのように私はこれを行うになっているか分からない。 これは私がこれまでに得たものである:データモデルに多対1の関係を設定する
データベース、tablestructure:
tProduct
ProductId int
ProductName varchar(250)
tCategory
CategoryId int
CategoryName varchar(250)
tLinkProductCategory
ProductId int
CategoryId int
データモデル:
public class ProductModel
{
public int ProductId;
public string ProductName
public IEnumerable<CategoryModel> Categories;
}
public class CategoryModel
{
public int CategoryId;
public string CategoryName;
}
問合せ:
public IQueryable<ProductModel> GetProductQuery()
{
var query = from product in DataContext.tProduct
//left join
from linkProductCategory in DataContext.tLinkProductCategory.Where(e => e.ProductId == product.ProductId).DefaultIfEmpty()
//left join
from category in DataContext.tCategory.Where(e => e.CategoryId == linkProductCategory.CategoryId).DefaultIfEmpty()
select new ProductModel() {
ProductName = product.Name
Categories = //something missing here
};
return query;
}
UPDATE このアプローチではなかったですトリック:
..
select new ProductModel() {
ProductName = product.ProductName,
Categories = product.tLinkProductCategory.Select(c => new CategoryModel
{
CategoryID = c.tCategory.CategoryId,
CategoryName = c.tCategory.CategoryName
}
}
...