Я использую Dev Express XAF WinForms для написания ERP-системы.
На практике я обнаружил, что мой DBContext должен иметь DBSet для большинства моих бизнес-объектов.
Я пытаюсь выяснить, какие таблицы должны иметь столбец меток времени для оптимистичных целей параллелизма.
Например, у меня есть
[NavigationItem("Sales")]
public class SalesOrder : BaseSalesHeader
{
public SalesOrder()
{
Lines = new List<SalesOrderLine>();
}
[Aggregated]
public virtual List<SalesOrderLine> Lines { get; set; }
}
[NavigationItem("Production")]
public class SalesOrderLine : BaseSalesProductTransactionLine
{
[Browsable(false)]
[System.ComponentModel.DataAnnotations.Required]
[RuleRequiredField(DefaultContexts.Save)]
[ForeignKey("SalesOrder_Id")]
public virtual SalesOrder SalesOrder { get; set; }
}
В моем DBContext у меня есть
public DbSet<SalesOrder> SalesOrders { get; set; }
public DbSet<SalesOrderLine> SalesOrderLines { get; set; }
В моем OnModelCreating у меня есть
modelBuilder.Entity<SalesOrder>().HasMany(p => p.Lines).WithRequired(t => t.SalesOrder).WillCascadeOnDelete(true);
Строки заказа на продажу доступны из 2 меню как часть заказа на продажу и как элемент строки заказа на продажу в элементе навигации «Производство».
Я думаю, что у меня должно быть поле метки времени в таблице SalesOrders. Должен ли я также иметь его в таблице SalesOrderLine?