• 1404/02/01

بروزرسانی رکورد ها در رابطه های single و multi :

سلام

چطور میتوانم داده ها را در جدول یا جداولی که با جدول اصلی من در ارتباط هستند تغییر دهم؟

از این کد برای تغییر فیلد خاص در جدول اصلی استفاده کردم :

context.Attach(...);

context.Entry(...).Property(x => x....).IsModified = true;

از دستور های زیر بصورت تک به تک برای رابطه یک به یک و یک به چند :

context.Entry(...).Property(x => x....).IsModified = true;

و

context.Entry(...).Reference(x=>x....).IsModified = true;

و

ReferenceEntry<..., ...> referenceEntry1 = context.Entry(...).Reference(e => e....);

و

NavigationEntry navigationEntry = context.Entry(...).Navigation("...");

و

CollectionEntry<..., ....> collectionEntry1 = context.Entry(...).Collection(e => e....);

داده های جدول اصلی تغییر میکند اما داده جدولی که رابطه دارد با وجود داشتن رکورد مرتبط تغییر نمیکند

ممنون میشم راهنمایی کنید 

  • 1404/02/08
  • ساعت 22:24

سلام - این اسکرپیت ها تست کنید

1- single

var mainEntity = context.MainEntities.Include(e => e.RelatedEntity).FirstOrDefault(e => e.Id == id);

 

if (mainEntity != null)

{

   // به‌روزرسانی فیلدهای اصلی

   mainEntity.SomeProperty = newValue;

   

   // به‌روزرسانی موجودیت مرتبط

   if (mainEntity.RelatedEntity != null)

   {

       mainEntity.RelatedEntity.RelatedProperty = newRelatedValue;

   }

   

   context.SaveChanges();

}

 

2- Multi

var mainEntity = context.MainEntities

                     .Include(e => e.RelatedCollection)

                     .FirstOrDefault(e => e.Id == id);

 

if (mainEntity != null)

{

   // به‌روزرسانی فیلدهای اصلی

   mainEntity.SomeProperty = newValue;

   

   // به‌روزرسانی مجموعه مرتبط

   foreach (var relatedItem in mainEntity.RelatedCollection)

   {

       relatedItem.SomeProperty = updatedValue;

   }

   

   context.SaveChanges();

}


logo-enamadlogo-samandehi