1
Моя проблема заключается в заполнении базы данных с помощью «поддатомодели» В этом случае у меня появилось много продуктов. Каждый продукт классифицируется, но некоторые продукты не классифицируются вообще. Продукт может быть связан даже с несколькими категориями. Не знаю, как я должен это делать. Это то, что я до сих пор:Заполнять datamodel с отношением «0 ко многим»
базы данных, tablestructure:
tProduct
ProductId int
ProductName varchar(250)
tCategory
CategoryId int
CategoryName varchar(250)
tLinkProductCategory
ProductId int
CategoryId int
DataModel:
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
}
}
...