allownull همه پراپرتی ها false میشود

علی شاکری
9 آذر ۱۴۰۰
سلام استاد نمیدونم چرا وقتی برای پراپرتی های جداولم هیچ انوتیشنی نمیزارم ولی sql بجای allownull=true همه رو اجباری میکنه؟
774

7 پاسخ
  • محمد اشرافی9 آذر ۱۴۰۰

    سلام این رو امتحان کنید اگر اوکی نشد اعلام کنید تا یه راه دیگه بهتون بگم : 

    پروژه ای که Entitiy هات توش هست، قابلیت Nullable اش رو false کنید : 

    <Nullable>disable</Nullable>

    یا کلا این رو بردارین از csproj

  • علی شاکری10 آذر ۱۴۰۰

    نه استاد درست نشد

    با اینکه به بعضی فیلدها Required ندادم ولی داخل sql اجباری شده و باید مقدار بدم

    امکان داره مشکل از sql من باشه؟

    من ویژوال 2022 و sql 2019 استفاده می کنم

  • محمد اشرافی10 آذر ۱۴۰۰

    یه عکس از Context بفرستید شاید تنظیم global اعمال کرده باشید یا Mapping ای داشته باشید 

    ------------

    string به صورت پیشرفض باید nullable باشه( تا ef 5 که به این شکل بود) شما یه بار migration  هارو پاک کن دوباره migration بزن اگه نشد از Fluent Api استفاده کنید 

  • علی شاکری10 آذر ۱۴۰۰

    migration رو هم پاک کردم دوباره ساختم بازم دیتابیس مثل قبل همه اجباری میشه

    نمیدونم چرا migration ها ، nullable false میشن

  • علی شاکری10 آذر ۱۴۰۰

    استاد تونستم اینجوری اوکیش کنم

    ?string

    توی میگریشن هم درست شد

    فک کنم توی .net6 اینجوری شده

    کاش آپدیت نمیکردم الان

  • محمد اشرافی11 آذر ۱۴۰۰

    فکر کنم اگر از FluentApi استفاده کنید و این رو روش اعمال کنید دیگه لازم نباشه string? رو بزاری

    .Property(b=>b.Name).IsRequired(false);

    اگر تاحالا با Fluent Api کار نکردین این لینک رو ببینید

  • علی شاکری11 آذر ۱۴۰۰

    ممنونم استاد