minaforotan
یک شنبه 11 مرداد 1394, 13:56 عصر
سلام
من دارم از code first تو mvc استفاده میکنم و به یک مشکلی خوردم
دارم یک سیستم ارسال پیام پیاده سازی میکنم که کلاسام به این صورته که هر پرسنل میتونه لیستی از پیام ها رو دریافت کنه و هر پیام هم میتونه واسه لیستی از پرسنل ارسال شه
تا اینجا که مشکلی نست و این ارتباط رو یک رابطه چند به چند در نظر میگیره و جدول سوم خودکار ساخته میشه
public class Message
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity )]
public Int64 ID { get; set; }
[DataType(DataType.MultilineText)]
[Display(Name = "متن")]
[Required(ErrorMessage = "این فیلد الزامی است", AllowEmptyStrings = false)]
public string Body { get; set; }
[Display(Name = "تاریخ")]
public DateTime DateMsg { get; set; }
[Display(Name = "زمان ارسال")]
public string DateMsgFa { get; set; }
public virtual ICollection<personnel> personnels { get; set; }
}
public class personnel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity )]
[ScaffoldColumn(false)]
public Int64 ID { get; set; }
[Display(Name = "نام")]
[Required(ErrorMessage = "*", AllowEmptyStrings = false)]
public string Name { get; set; }
[Display(Name = "فامیل")]
[Required(ErrorMessage = "*", AllowEmptyStrings = false)]
public string Family { get; set; }
public string FullName { get { return this.Name + " " + this.Family; } }
public virtual ICollection<Message> Messages { get; set; }
}
اما مشکل زمانی به وجود میاد که من میگم هر پیام رو یک پرسنل فرستاده یعنی خط زیر در کلاس meesage اضافه میشه
public virtual personnel Azpersonnel { get; set; }
اونوقت دیگه جدول سوم رابطه قبلی ساخته نمیشه چون میاد icollection ای که در جدول پرسنل برای رابطه چند به چندم ساختم رو با این خط جدید در نظر میگیره و یک ارتباط یک به چند میسازه
نمیدونم تونستم منظورم و برسونم یا نه در کل همچین چیزی میخوام
یک رابطه چند به چند برای :هر پرسنل لیستی از نامه ها را دریافت میکند و هر نامه هم میتونه به لیستی از پرسنل ارسال بشه
یک رابطه برای :هر نامه را یک پرسنل ایجاد کرد
من دارم از code first تو mvc استفاده میکنم و به یک مشکلی خوردم
دارم یک سیستم ارسال پیام پیاده سازی میکنم که کلاسام به این صورته که هر پرسنل میتونه لیستی از پیام ها رو دریافت کنه و هر پیام هم میتونه واسه لیستی از پرسنل ارسال شه
تا اینجا که مشکلی نست و این ارتباط رو یک رابطه چند به چند در نظر میگیره و جدول سوم خودکار ساخته میشه
public class Message
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity )]
public Int64 ID { get; set; }
[DataType(DataType.MultilineText)]
[Display(Name = "متن")]
[Required(ErrorMessage = "این فیلد الزامی است", AllowEmptyStrings = false)]
public string Body { get; set; }
[Display(Name = "تاریخ")]
public DateTime DateMsg { get; set; }
[Display(Name = "زمان ارسال")]
public string DateMsgFa { get; set; }
public virtual ICollection<personnel> personnels { get; set; }
}
public class personnel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity )]
[ScaffoldColumn(false)]
public Int64 ID { get; set; }
[Display(Name = "نام")]
[Required(ErrorMessage = "*", AllowEmptyStrings = false)]
public string Name { get; set; }
[Display(Name = "فامیل")]
[Required(ErrorMessage = "*", AllowEmptyStrings = false)]
public string Family { get; set; }
public string FullName { get { return this.Name + " " + this.Family; } }
public virtual ICollection<Message> Messages { get; set; }
}
اما مشکل زمانی به وجود میاد که من میگم هر پیام رو یک پرسنل فرستاده یعنی خط زیر در کلاس meesage اضافه میشه
public virtual personnel Azpersonnel { get; set; }
اونوقت دیگه جدول سوم رابطه قبلی ساخته نمیشه چون میاد icollection ای که در جدول پرسنل برای رابطه چند به چندم ساختم رو با این خط جدید در نظر میگیره و یک ارتباط یک به چند میسازه
نمیدونم تونستم منظورم و برسونم یا نه در کل همچین چیزی میخوام
یک رابطه چند به چند برای :هر پرسنل لیستی از نامه ها را دریافت میکند و هر نامه هم میتونه به لیستی از پرسنل ارسال بشه
یک رابطه برای :هر نامه را یک پرسنل ایجاد کرد