PDA

View Full Version : سوال: چگونه میشه فیلد کلید رو آپدیت کرد؟ (LINQ)



masoodinfo
سه شنبه 16 شهریور 1389, 19:10 عصر
با سلام خدمت دوستان .

از قرار معلوم فیلد کلید رو نمیشه مانند بقیه فیلد ها آپدیت کرد با linqqqqqqqqqqq هاااااااا!!!!!!
به جز این که رکورد رو حذف و دوباره اضافه کنیم راهی دیگه نداره؟:ناراحت:

ایمان اختیاری
چهارشنبه 17 شهریور 1389, 10:04 صبح
نه .. هیچ مشکلی نداره .. دقیقا بگین به چه مشکلی خوردین ...

masoodinfo
چهارشنبه 17 شهریور 1389, 13:26 عصر
نه .. هیچ مشکلی نداره .. دقیقا بگین به چه مشکلی خوردین ...

واه.

این error رو میده هنگام آپدیت کردن!!!!!


Value of member 'code' of an object of type 'Bime' changed.
A member defining the identity of the object cannot be changed.
Consider adding a new object with new identity and deleting the existing one instead.

کد من :

Dim q = (From f In db.Bimes Where f.code = code).Single
q.code = cod
db.SubmitChanges()

Reza_Yarahmadi
چهارشنبه 17 شهریور 1389, 15:35 عصر
اين مشكل نه از linq است و نه از كليد اصلي بودن به خاطر:

A member defining the identity of the object cannot be changed.
اين يعني اينكه فيلدهايي كه به صورت identity تعريف شدن نميشه تغيير داد

Consider adding a new object with new identity and deleting the existing one instead.
اينم يعني بجاش ميتونيد يه ركورد جديد با identity جديد درست كنيد و قبلي رو حذف كنيد.

در كل يعني فيلد identity رو نميشه دستي تغيير داد يا بايد بيخيال تغييرش بشيد و يا از حالت identity خارجش كنيد.

masoodinfo
چهارشنبه 17 شهریور 1389, 17:01 عصر
اين مشكل نه از linq است و نه از كليد اصلي بودن به خاطر:

اين يعني اينكه فيلدهايي كه به صورت identity تعريف شدن نميشه تغيير داد

اينم يعني بجاش ميتونيد يه ركورد جديد با identity جديد درست كنيد و قبلي رو حذف كنيد.

در كل يعني فيلد identity رو نميشه دستي تغيير داد يا بايد بيخيال تغييرش بشيد و يا از حالت identity خارجش كنيد.


عزیز شما فارسی صحبت می کنی من نمیفمم با زبان کد بحرف:لبخند:.
یک مثال بزن واسم که چیکار کنم

Rejnev
چهارشنبه 17 شهریور 1389, 18:32 عصر
هنگام طراحی جداول، فیلد کد جدول بیمه رو Identity کردی که خودش خودکار زیاد میشه و بصورت معمول نمیشه دستی تغییرش داد.

masoodinfo
چهارشنبه 17 شهریور 1389, 21:07 عصر
هنگام طراحی جداول، فیلد کد جدول بیمه رو Identity کردی که خودش خودکار زیاد میشه و بصورت معمول نمیشه دستی تغییرش داد.

یعنی می خوای بگی که Auto Number هست :متعجب:؟ نه auto نیست و یک فیلد nchar هست.

الان چی؟

masoodinfo
پنج شنبه 18 شهریور 1389, 11:31 صبح
Im waiting for your answerssssssssssssssssssssssss

Reza_Yarahmadi
پنج شنبه 18 شهریور 1389, 11:45 صبح
دوست عزیز بانک رو چک کنید و مطمئن بشید identity نباشه - اگر بعد از درست کردن کلاس linq جدول رو تغییر دادید کلاس رو حذف و دوباره بسازید
این خطا فقط بخاطر تغییر فیلد identity پیش میاد و دلیل دیگه ای نداره

masoodinfo
پنج شنبه 18 شهریور 1389, 13:51 عصر
دوست عزیز بانک رو چک کنید و مطمئن بشید identity نباشه - اگر بعد از درست کردن کلاس linq جدول رو تغییر دادید کلاس رو حذف و دوباره بسازید
این خطا فقط بخاطر تغییر فیلد identity پیش میاد و دلیل دیگه ای نداره

دوست عزیز اگر منظوره شما از identity همان فیلد auto number یا خود مقدار دهنده است که در کل db من همچین فیلدی ندارم :متفکر:و اگر منظوره شما چیزه دیگه ای است راهنمایی بفرمایید.

joobyjoon
شنبه 20 شهریور 1389, 17:58 عصر
واه.

این error رو میده هنگام آپدیت کردن!!!!!


Value of member 'code' of an object of type 'Bime' changed.
A member defining the identity of the object cannot be changed.
Consider adding a new object with new identity and deleting the existing one instead.

کد من :

Dim q = (From f In db.Bimes Where f.code = code).Single
q.code = cod
db.SubmitChanges()
آقا تو دیتا بیس دستی میتونی این فیلد رو ادیت کنی؟

masoodinfo
جمعه 09 مهر 1389, 23:18 عصر
آقا تو دیتا بیس دستی میتونی این فیلد رو ادیت کنی؟

یعنی در sql server? بله میشه .