سلام
چطور میتوانم داده ها را در جدول یا جداولی که با جدول اصلی من در ارتباط هستند تغییر دهم؟
از این کد برای تغییر فیلد خاص در جدول اصلی استفاده کردم :
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....);
داده های جدول اصلی تغییر میکند اما داده جدولی که رابطه دارد با وجود داشتن رکورد مرتبط تغییر نمیکند
ممنون میشم راهنمایی کنید
سلام - این اسکرپیت ها تست کنید
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();
}