Я пытаюсь провести рефакторинг некоторого кода Entity Framework, в котором у меня есть сущность Products и связанные сущности для серии, семейства, бренда и т. Д. Все сущности серии, семейства и бренда имеют одинаковую базовую структуру с Id и Текстовое свойство.
Два метода, приведенные ниже, очень похожи и должны иметь возможность рефакторинга для одного метода, но я не уверен, как динамически передавать, в каком объекте я запрашиваю. В этом случае мне нужно иметь возможность перейти в db.ProductFamilies или db.ProductSeriesSet. Любые идеи, как сделать эти 2 стать 1?
Спасибо!
public DTOs.ProductCollection GetFamily(int id)
{
using (Entities db = new Entities())
{
var fam = (from collection in db.ProductFamilies.Include("Product")
.Include("Product.Stuff1")
.Include("Product.Stuff2")
where collection.Id == id
select collection).FirstOrDefault();
return ProductCollectionEFToProductCollectionDTO(fam, true);
}
}
public DTOs.ProductCollection GetSeries(int id)
{
using (Entities db = new Entities())
{
var ser = (from collection in db.ProductSeriesSet.Include("Product")
.Include("Product.Stuff1")
.Include("Product.Stuff2")
where collection.Id == id
select collection).FirstOrDefault();
return ProductCollectionEFToProductCollectionDTO(ser, true);
}
}