PDA

View Full Version : cascade در entity framework



EBRAHIMIEKOKDARAGHI
پنج شنبه 21 اسفند 1393, 21:10 عصر
با سلام خدمت اساتید
من تونستم کد cascaade کردن قسمت delete در رابطه های جداولم بدست بیاورم ولی موفق نشدم کد cascaade کردن قسمت update رو بدست بیاورم لطفا" کمک کنید



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

public class DataBaseContext:DbContext {
public DataBaseContext()
: base("DefaultConnection")
{


}


protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Contractor>().HasMany(x => x.mashin).WithRequired(x=>x.Contractor).WillCascad eOnDelete(true);
base.OnModelCreating(modelBuilder);
}




public DbSet<Person> pepole { get; set; }
public DbSet<Contractor> Contractor { get; set; }
public DbSet<Mashin> Mashin { get; set; }
public DbSet<UserProfile> UserProfiles { get; set; }
public DbSet<Stuff> Stuffs { get; set; }

}

EBRAHIMIEKOKDARAGHI
یک شنبه 24 اسفند 1393, 19:33 عصر
کسی نیست کمک کنه!!!

salar IT man
یک شنبه 02 فروردین 1394, 01:09 صبح
سلام. به نقل قول از جناب نصیری http://www.dotnettips.info/post/837/ef-code-first-7#comment-5248
خیر. ON UPDATE CASCADE عموما به معنای به روز رسانی primary key است که در جداول دیگر ارجاع دارد و از دیدگاه EF یک کلید اصلی، read only است.
به نظر من کار درستی انجام دادن. زمانیکه نیاز به به‌روز رسانی primary key دارید یعنی طراحی بانک اطلاعاتی شما یا نرمال نیست یا مشکل داره.
البته می‌تونید رویه ذخیره شده درست کنید برای اینکارها و دستی مسایل رو به زور اعمال کنید ولی به صورت پیش فرض خارج از سیستم Tracking آن که به صورت خودکار اطلاعات اشیاء مرتبط را به روز می‌کند، Cascade Update دیگری وجود ندارد.