kaydetmeden önce, seyir özelliklerini var üzerine sunucu tarafında rüzgârda BeforeSaveEntity bir Teşekkülün seyir tesisin "geçerli" değerini almak için herhangi bir yolu var mı (ya da başka bir yerde önce kaydetmek) tabanlı sunucuda, bir varlık değiştirmek ? Güncel olarak, veritabanında var olan, gelen tüm değişiklikler ile birleştiği anlamına gelir. Bu, doğrulama için değil, daha ziyade her ikisi de temel alarak (istemcisinde istemediğim) bir üst özellik için bir hesap yapıyorum. ebeveyn alanları ve çocuk alanları ... Örneğinesinti - bu
,
public class Parent {
public ICollection<Child> Children{ get; set; }
}
. . .
protected override bool BeforeSaveEntity(EntityInfo entityInfo) {
if (entityInfo.Entity.GetType() == typeof(Parent) &&
(entityInfo.EntityState == EntityState.Added || entityInfo.EntityState == EntityState.Updated)) {
// Lazy load Parent's Children collection out of breeze's context
// so items are "current' (existing merged with changes)
Parent parent = (Parent)entityInfo.Entity;
Context.Entry(parent).Collection(p => p.Children).Load();
// this throws exception Member 'Load' cannot be called for property
// 'Children' because the entity of type 'Parent' does not exist in the context.
}
}
Henüz DBContext içinde olmadıklarını düşünüyorum. Yapabileceğim tek şey, mevcut çocukları veritabanından almak ve bir güçlük olan BeforeSaveEntities'deki değişiklikleri birleştirmek.
Bu cevabı gördüm ancak gelen tüm değişikliklerle navigasyonun mevcut durumuna ihtiyacım var. Bu yüzden, "Ebeveynlerim" için herhangi bir "Çocuklar" değişimini savrulmak ve değişiklik yapmak zorunda mıyım? – user210757
Bir varlığın ve ilgili varlıklarının durumu hakkında bilinmesi gereken bir tasarrufla nasıl başa çıkardınız? – user210757
Cevabım için uzun bir örnek ekledim. Bu yardımcı olur umarım. –