مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

fardin_esmi

عضویت از 1394/05/03

پر کردن جداول مربوط به کلاس های استفاده شده در viewmodel

  • دوشنبه 10 اسفند 1394
  • 12:58
تشکر میکنم

باعرض سلام و خسته نباشید خدمت اساتید محترم

من ویو مدلی دارم که از دو کلاس درست شده و در یک ویو نمایش داده می شود . حالا می خوام اطلاعات این صفحه رو به جداول مرتبط با ویو مدل اضافه کنم . از (Bind(Include  که نمیشه استفاده کرد (شاید من بلد نیستم ) 

چطوری باید این کار رو انجام بدم ؟

از هر راهی که ممکنه لطفا بفرمایید.

ممنونم

 

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 10 اسفند 1394
  • 12:59

شما باید ViewModel را به اکشن ارسال کنید و سپس در اکشن مربوطه به صورت جداگانه در دو جدول Insert کنید

کاربر سایت

fardin_esmi

عضویت از 1394/05/03

  • دوشنبه 10 اسفند 1394
  • 15:43

خوب ، شما گفته اید که در اکشن مربوطه به صورت جداگانه در دو جدول 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 داشته باشم چطور باید جداول این دو را با توجه به اینکه ارتباط هایی با جداول دیگر دارند پر کنم؟

پیشاپیش از پاسخ شما متشکرم.

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 11 اسفند 1394
  • 09:22

سوالتون واضح نیست دوست من

اصول کارتون اشتباه هست و برای ViewModel به این شکل عمل نمیشود

شما باید یک کلاس ایجاد کنید از تمام Property های مورد نیاز بعد در سمت Action در جداول ذخیره کنید

کاربر سایت

fardin_esmi

عضویت از 1394/05/03

  • دوشنبه 10 خرداد 1395
  • 08:44

جوابی که خودم بهش رسیدم با حوابی که آقای مداپنی دادند یکی است .

به بیان دیگر:

اگر بخواهیم از کلاسهایی که روابطی باهم دارند viewmodel بسازیم لازم نیست در viewmodel از کالکشن کلاسها چیزی در ویو مدل بیاوریم.

در مثال بالا اگر بخواهیم viewmodel از کلاس A, B داشته باشیم  فقط گزینه های a_id , a_field1 , B_id , B_field1 درصورت لزوم کفایت می کند.

موفق باشید.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)