我使用Entity Framework在XAF中有一个主要细节场景。我已使用Master.Details
注释[Aggregated]
属性。
我期待两种功能:
但不幸的是,它不是那样的。每次我点击详细网格上的新按钮时,它都会创建详细信息并将其保存到数据库中。
此外,我发现这个老问题(2年前)说EF存在这个问题。 https://www.devexpress.com/Support/Center/Question/Details/Q557784
是否有任何解决方法可以使用EF获得真正的构图和主要细节?
答案 0 :(得分:0)
在XAF中,记录不会从数据库中物理删除。相反,它们使用GCRecord列标记为已删除。当此字段非空时,该行将被视为已删除,并且永远不会在您的应用中显示。
此外,只要您实例化一个对象,它就会被保存到数据库中,如果您在调用CommitChanges之前将其删除,则会使用非空GCRecord。
答案 1 :(得分:0)
我发现EF
不需要[Aggregated]属性诀窍是在DBContext OnModelCreating
中设置关系使用销售订单作为示例
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
modelBuilder.Entity<Order>().HasMany(x => x.Lines).WithOptional(x => x.Order).WillCascadeOnDelete();
}
//我希望我能在这里使用WithRequired,但XAF不支持它。
确保LinkNewObjectToParentImmediately为true。
public partial class T474565WindowsFormsApplication : WinApplication {
public T474565WindowsFormsApplication() {
InitializeComponent();
// LinkNewObjectToParentImmediately = false;
}
https://www.devexpress.com/Support/Center/Question/Details/T474565