• 1400/04/06
  • 0
  • 267
1400/04/06 |
backend
c-sharp
asp-net-core
identity

اشکال در کد بعد از ارث بری DatabaseContext از IdentityDbContext

با سلام

بنده روی یک پروژه کار میکنم که جهت استفاده از امکانات Identity در مراحل آخر مجبور به ایجاد یکسری تغییرات در دیتابیس و اضافه کردن Identiry به آن شده . در و تنظیمات را مطابق آنچه در دوره آموزشی ذکر کرده بودید انجام دادم . در کدهای قبل از DatabaseContext یک new ایجاد و با آن کار می کردم

private DatabaseContext db = new DatabaseContext();

ولی با تغییرات جدید وقتی مدل را به ویو پاس می دهم و یا روی ورودی شرطی اعمال می کنم مقدار null را بر می گرداند مثلا کد زیر :

 public JsonResult CheckUserNameAvailability(Int32 UserCode)
        {
            //System.Threading.Thread.Sleep(200);
            var SearchData = db.Persons.Where(p => p.Pcode == UserCode).FirstOrDefault();
            
            if (SearchData != null)
            {
                TempData["code"] = 0;

                return Json(1);
            }
            else
            {
                TempData["code"] = UserCode;
                return Json(0);
            }
        }

در خط

 var SearchData = db.Persons.Where(p => p.Pcode == UserCode).FirstOrDefault

خطای

System.Data.SqlTypes.SqlNullValueException: 'Data is Null. This method or property cannot be called on Null values.

را بر می گرداند با آنکه دیتا بیس خالی نیست و قبلا این کد بدرستی کار میکرد. لطفا بفرمائید ایراد از کجاست


  • 1400/04/06

سلام

در identity user فیلد id مربود به یوزر از نوع string می باشد

 


معمولا خطایی که اعلام کردید زمانی اتفاق می افتد که بنا به دلایلی جدول مربوطه را تغییر داده باشید و داخل آن یک یا چند فیلدی قرار دارد که نباید null باشد ولی در دیتابیس زمانی که select میگیرید در آن ستون null قرار گرفته مثلا شما فیلد UserId را در جدول ندارید چند رکورد اضافه کردید بعد فیلد UserId را به جدول اضافه کردید و بصورت پیش فرض آن ستون در کلیه رکوردها Null ثبت شده و شما باید جدول را باز کرده و آن ستونها را ویرایش کنید تا این خطا برطرف گردد

ارتباطی به Identity  ندارد



پاسخی برای این باگ ارسال کنید

لطفا کدها را درون قطعه کد ارسال نمایید

برای ارسال پاسخ باید وارد حساب کاربری خود شوید
ورود به حساب کاربری