سلام دوستان من یک مدل دارم با نام 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 ارث بری می کنند
رابطه شما یک رابطه یک به چند است ؟
برای ذخیره مقدار یک مدل در مدل دیگر نیاز به رابطه هست ؟
ایجاد PlabMove_Id به این دلیل است که شما یک رابطه یکی به یک دارید ولی آن را در یک طرف رابطه مشخص نکرده اید. اگر Move و MovePlan یک رابطه یک به یک هستند Id آنها باید در یک نوع و مقدار آن ها برابر باشند.
نه اصلا نیازی به رابطه بین این دو نیست ولی من فکر میکنم چون یک لیست از move و یک move دارم خوش فکر میکنه که باید رابطه ایجاد کنم !
چطوری این مشکل رو برطرف کنم ؟ و به ef بفهمونم که این رابطه نیست و فقط می خواهد داده دخیره کند ؟
میتونید از صفت NotMapped استفاده کنید تا EF از آن صرف نظر کند.
[NotMapped]
اون وقت داده ها در دیتابیس ذخیره میشود ؟
بله EF دیگر آن را در نظر نمی گیرد.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)