Мои объекты домена используют EF Table Per Type Inheritance, и вот связь.Получить тип объекта в EF TPT Наследование
Как вы можете видеть счета-фактуры сидит на материнской компании Order.cs
. Это создает проблемы, когда я занимаюсь счетами-фактурами.
Например, создать счет-фактуру, мне нужно пройти заказ Id к контроллеру счета-фактуры:
public ActionResult Create(int orderId)
{
if (orderId == 0) return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
// determine whether the order is a SaleOrder or a PurchaseOrder
// then create the viewModel passing in the SaleOrder/PurchaseOrder details
return View(viewModel);
}
Как выяснить, какой тип ребенка порядок является просто его Id ?
UPDATE
Тео спросил, как я в настоящее время извлечения SaleOrders и PurchaseOrders. У меня есть это в моем контексте:
public DbSet<PurchaseOrder> PurchaseOrders { get; set; }
public DbSet<SaleOrder> SaleOrders { get; set; }
Я построил хранилище вокруг каждого, так что у меня PurchaseOrderRepository
и SaleOrderRepository
и я делаю CRUD таким образом.
Это будет зависеть от любого количества вещей. Сохраняете ли вы свои SO и PO в одной таблице или разных таблицах? Как вы их действительно получаете? существует ли какое-либо различие между диапазоном идентификаторов, присвоенных типам заказов? Вы не склонны настраивать какой-то механизм управления, который отслеживает, какие идентификаторы были присвоены типу заказа? – Theo
@ Theo, он уже заявил, что это стратегия TPT –
Да, у каждого своя таблица, вот что означает TPT. Но я добавил некоторые другие сведения, которые могут быть полезны. – Ciwan