باعرض سلام و خسته نباشید خدمت اساتید محترم
من ویو مدلی دارم که از دو کلاس درست شده و در یک ویو نمایش داده می شود . حالا می خوام اطلاعات این صفحه رو به جداول مرتبط با ویو مدل اضافه کنم . از (Bind(Include که نمیشه استفاده کرد (شاید من بلد نیستم )
چطوری باید این کار رو انجام بدم ؟
از هر راهی که ممکنه لطفا بفرمایید.
ممنونم
شما باید ViewModel را به اکشن ارسال کنید و سپس در اکشن مربوطه به صورت جداگانه در دو جدول Insert کنید
خوب ، شما گفته اید که در اکشن مربوطه به صورت جداگانه در دو جدول Insert کنیم.
اما سوالی که پیش می آید این است که در جداولی که به خاطر Relation های مختلف ارتباط های یک به چند یا یک به یک دارند جه باید کرد؟
منظورم اینست که جطور به جدول کلاسی که کالکشنی از یک کلاس دیگر دارد اطلاعات را اضافه کنم ؟
آیا viewmodel ی که ساختم باید شامل همه کلاسها یا بخشی از آنها که با هم ارتباط دارند باشد ؟
اگر فرض کنیم :
public class A { public int a_id { get; set; } public string a_field1 { get; set; } //رابطه یک به چند با کلاس بی public virtual ICollection<B> Bs { get; set; } //رابطه یک به یک با کلاس دی public virtual D Ds { get; set; } } public class B { public int B_id { get; set; } public string B_field1 { get; set; } //رابطه یک به چند با کلاسهای آ و سی public virtual A As { get; set; } public virtual C Cs { get; set; } } public class C { public int C_id { get; set; } public string C_field1 { get; set; } //رابطه یک به چند با کلاس بی public virtual ICollection<B> Bs { get; set; } //رابطه یک به یک با کلاس ای public virtual E Es { get; set; } }
مثلا در کلاس A پراپرتی از جنس کلاس D و کالکشنی از جنس کلاس B، همچنین در کلاس B پراپرتی از کلاس C دارم .
و بخواهم viewmodel از کلاس A, B داشته باشم چطور باید جداول این دو را با توجه به اینکه ارتباط هایی با جداول دیگر دارند پر کنم؟
پیشاپیش از پاسخ شما متشکرم.
سوالتون واضح نیست دوست من
اصول کارتون اشتباه هست و برای ViewModel به این شکل عمل نمیشود
شما باید یک کلاس ایجاد کنید از تمام Property های مورد نیاز بعد در سمت Action در جداول ذخیره کنید
جوابی که خودم بهش رسیدم با حوابی که آقای مداپنی دادند یکی است .
به بیان دیگر:
اگر بخواهیم از کلاسهایی که روابطی باهم دارند viewmodel بسازیم لازم نیست در viewmodel از کالکشن کلاسها چیزی در ویو مدل بیاوریم.
در مثال بالا اگر بخواهیم viewmodel از کلاس A, B داشته باشیم فقط گزینه های a_id , a_field1 , B_id , B_field1 درصورت لزوم کفایت می کند.
موفق باشید.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)