PDA

View Full Version : تغيير مقدار كليد يك جدول با استفاده از Entity Freamwork



piroozman
شنبه 17 تیر 1391, 10:22 صبح
با سلام خدمت كليه دوستان
در يك برنامه جدولي به نام users وجود دارد كه كد ملي كاربر به عنوان كليد در نظر گفته شده است. اسم اين فيلد nationalCode بوده و از نوع varchar با طول 10 مي باشد. ضمنا از اين كليد به عنوان كليد خارجي در جداول ديگر استفاده نشده است.
با استفاده از كد زير قصد به روز رساني كد ملي كاربري با شناسه 1 را دارم
Var user=context.users.first(id=>id.userId==1);
user.nationalCode="1111111111"
context.SaveChanges();

اما با خطاي تحت عنوان زير روبرو مي شوم:
The property 'nationalCode' is part ot the object's key information and cannot be modified
نوع خطا نيز InvalidOperationExeption مي باشد.
جستجوي زيادي كردم اما نتونستم نتيجه مناسبي پيدا كنم.
مطمئناً بزرگواراني هستند كه به اين مشكل روبرو شده اند. اگر امكان داره بنده رو راهنمايي كنيد. خيلي متشكرم

ahmad156
شنبه 17 تیر 1391, 16:47 عصر
public Int32 UpdateOperator(Operator newOp)
{
using (Context db = new Context())
{
var oldop = db.Operators.Find(newOp.ID);
db.Entry(oldop).CurrentValues.SetValues(newOp);
try
{
return db.SaveChanges();
}
catch
{
return db.SaveChanges();
}

}
}