دسته بندی ها
22:29 1400/12/12

تغییر کلید اصلی جدول از int به guid در Sql Server

مشخصات سوال کننده :
کاربر : nadimi1359     امتیاز کاربر : 0     رتبه کاربر : 7018
دسته بندی : Asp.net Core Asp.net Mvc

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3816
پاسخ دهنده : pedram_khan 23:49 1400/12/12

منظور شما رو از سوال متوجه شدم. در واقع شما قصد داشتید فیلد کلید اصلی که int بوده رو به guid تغییر بدید. ببینید اطلاعات شما در مورد سوالتون کمی ناقص هست. مثلا هیچ کدی یا خطایی ننوشتید.

اما به طور کلی اگر پروژه شما با C# یا Asp net Core هست شما توسط دستور زیر میتونید یک رشته Guid رو تولید کنید.

Guid id = Guid.NewGuid();
//Or
string id = Guid.NewGuid();

در متغیر Id رشته Guid شما ذخیره میشه و از این رشته می تونید به عنوان کلید اصلی در جدول استفاده کنید. در واقع هر رکوردی که در دیتابیس ثبت می کنید باید این رشته رو هم در فیلد Id خودتون نگهداری کنید.

دقت کنید که بهتره به این روش Guid رو استفاده کنید و از طریق خود Sql Server نوع فیلد رو Guid نکنید. بهتره فیلد خودتون رو در دیتابیس Varchar کنید و سپس فیلد Id رو داخلش ذخیره کنید.

اگر خطای دیگه ای دارید خود خطا رو بفرمایید تا بررسی بشه.

به این پاسخ امتیاز بدهید    0
امتیاز: 277 رتبه: 6
1 نظر
nadimi1359 : سلام موارد ساخت guid درست هست من هر مشکلی هست در بانک هست چون بعضی از جدولهام درست کار میکنه

امتیاز کاربر : 0   رتبه کاربر : 7018   تاریخ ثبت : 05:56 1400/12/17
پاسخ دهنده : hhojati 10:54 1400/12/18

 با سلام

شما می توانید در جدول تون id را از int به string تغییر دهید

سپس در فایل DbContext کد زیر را اضافه کنید

builder.Entity<MyTable>(entity => { entity.Property(e => e.Id).ValueGeneratedOnAdd(); });

به جای MyTable اسم جدول خودتون رو بنویسید.

ویرایش شده در چهارشنبه 18 اسفند 1400 ساعت 10:56:28
به این پاسخ امتیاز بدهید    1
امتیاز: 5 رتبه: 110
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود