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

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

کاربر سایت

djary

عضویت از 1393/10/28

سوال: ذخیره یک مدل در مدل دیگر entity framework 6 code first

  • پنجشنبه 10 اسفند 1396
  • 13:03
تشکر میکنم

سلام دوستان من یک مدل دارم با نام Move 
مدل Move: 

public class Move : BaseModel
 {
        [Display(Name = "نام حرکت")]
        public string Name { get; set; }
        [Display(Name = "گروه حرکت")]
        [ForeignKey("MoveGroup")]
        public string MoveGroupId { get; set; }
        public virtual ICollection<MoveGroup> MoveGroup { get; set; }
}

و یک مدل دیگی با نام PlanMove دارم که در این مدل من دو پراپرتی دارم که یکیش فقط یک Move  ذخیره می کنه و دیگری  لیستی از move را ذخیره می کند

مدل PlanMove:

public class PlanMove:BaseModel
{

        [Display(Name="حرکات جایگزین")]
        public List<Move> AlternativeMove { get; set; }
        [ForeignKey("Move")]
        public Guid MoveId { get; set; }
        public virtual Move Move { get; set; }
}

اما مشکلی که من دارم اینه که موقع ساخت دیتابیس ef میاد و یک ستون به نام PlanMove_Id در جدول move ایجاد میکنه در صورتی که نیازی به این کار نیست. یعنی جدول move نیازی به جدول PlanMove نداره که آن ستون برایش ایجاد میشود. move یک جدول مستقل هست و باید برخی از اطلاعاتش در جدول PlanMove ذخیره شود. 

کسی دلیل اینکه ستون PlabMove_Id در جدول Move ایجاد میشود را میداند ؟ چطور دو مقدار از یک مدل دیگر را در مدلی ذخیره کنم ؟

نکته ای هم که وجود داره اینکه id  درا از basemodel  ارث بری می کنند

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

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

سهیل علیزاده

عضویت از 1396/04/09

  • پنجشنبه 10 اسفند 1396
  • 13:09

رابطه شما یک رابطه یک به چند است ؟

کاربر سایت

djary

عضویت از 1393/10/28

  • پنجشنبه 10 اسفند 1396
  • 13:43

برای ذخیره مقدار یک مدل در مدل دیگر نیاز به رابطه هست ؟

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • پنجشنبه 10 اسفند 1396
  • 14:11

ایجاد PlabMove_Id به این دلیل است که شما یک رابطه یکی به یک دارید ولی آن را در یک طرف رابطه مشخص نکرده اید. اگر Move و MovePlan یک رابطه یک به یک هستند Id آنها  باید در یک نوع و مقدار آن ها برابر باشند.

کاربر سایت

djary

عضویت از 1393/10/28

  • پنجشنبه 10 اسفند 1396
  • 15:02

نه اصلا نیازی به رابطه بین این دو نیست ولی من فکر میکنم چون یک لیست از move  و یک move  دارم خوش فکر میکنه که باید رابطه ایجاد کنم !

چطوری این مشکل رو برطرف کنم ؟ و به ef  بفهمونم که این رابطه نیست و فقط می خواهد داده دخیره کند ؟

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • پنجشنبه 10 اسفند 1396
  • 16:11

میتونید از صفت NotMapped استفاده کنید تا EF از آن صرف نظر کند. 

[NotMapped]

کاربر سایت

djary

عضویت از 1393/10/28

  • پنجشنبه 10 اسفند 1396
  • 17:50

اون وقت داده ها در دیتابیس ذخیره میشود ؟

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • پنجشنبه 10 اسفند 1396
  • 17:54

بله EF دیگر آن را در نظر نمی گیرد.

کاربر سایت

djary

عضویت از 1393/10/28

  • پنجشنبه 10 اسفند 1396
  • 17:59
خوب داده ها ذخیره نشود به چه دردی می خورند
کاربرانی که از این پست تشکر کرده اند

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

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

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