PDA

View Full Version : سوال: ویرایش نشدن فیلد کلید در اتصال به پایگاه داده در تکنولوژی Entity Framework



hamid075
یک شنبه 28 مهر 1392, 15:10 عصر
سلام. من با استفاده از تکنولوژی entity framework دیتا بیس خودما که داخل اسکیوال نوشتم به داخل ویژوال استادیو متصل کردم. حالا فکر کنید من داخل این دیتا بیس یه جدول به نام Books دارم که اطلاعات مربوط به کتاب های مختلف در اون ذخیره میشه! من داخل این جدول برای کتاب ها یه فیلد شناسه به نام BookID که
کلید این جدول محسوب میشه گذاشتم! (توجه کنید من نوع کلیدا از نوع رشته ای قرار دادم و این فیلد identity نیست)
حالا من نرم افزاری دارم که میخوام کاربر اجازه داشته باشه علاوه بر ورود اطلاعات کتاب ها ، بتونه این اطلاعات را ویراش هم بکنه ! اما در هنگام ویرایش BookID ویژوال استادیو خطا میده و در واقع این خطا یک استثنا هست !
میگه :
the property BookID is part of object's key information and cannot be modified
این یعنی چی ؟ شاید کاربر من بخواد آیدی کتابشا تغییر بده!:متفکر:
از تمام کسانی که میتونند کمکم کنند کمال تشکر را دارم!

bahareh1368
چهارشنبه 01 آبان 1392, 21:17 عصر
سلام. من با استفاده از تکنولوژی entity framework دیتا بیس خودما که داخل اسکیوال نوشتم به داخل ویژوال استادیو متصل کردم. حالا فکر کنید من داخل این دیتا بیس یه جدول به نام Books دارم که اطلاعات مربوط به کتاب های مختلف در اون ذخیره میشه! من داخل این جدول برای کتاب ها یه فیلد شناسه به نام BookID که
کلید این جدول محسوب میشه گذاشتم! (توجه کنید من نوع کلیدا از نوع رشته ای قرار دادم و این فیلد identity نیست)
حالا من نرم افزاری دارم که میخوام کاربر اجازه داشته باشه علاوه بر ورود اطلاعات کتاب ها ، بتونه این اطلاعات را ویراش هم بکنه ! اما در هنگام ویرایش BookID ویژوال استادیو خطا میده و در واقع این خطا یک استثنا هست !
میگه :
the property BookID is part of object's key information and cannot be modified
این یعنی چی ؟ شاید کاربر من بخواد آیدی کتابشا تغییر بده!:متفکر:
از تمام کسانی که میتونند کمکم کنند کمال تشکر را دارم!

وقتی داری عمل ویرایش انجام میدی باید BookID را هم مقداربدی.یعنی چک کنی اگه کاربر bookID رو تغییر داده شما هم مقدار جدید رو ذخیره کنی اما اگه تغییر نداده همون مقدار رو داشته باشه.
در ضمن BookID چون کلیده نمیتونه مقدار تکراری بگیره. اینو هم در نظر بگیرید