سلام
من در یک برنامه با استفاده از Entity framework code first ، مدل های مربوط به کاربر، نقش و سطح دسترسی را با رابطه چند به چند ایجاد کرده ام.
یعنی جدول کاربر و نقش با هم رابطه چند به چند دارند و جدول نقش و سطح دسترسی هم با هم رابطه چند به چند دارند.
در جدول کاربر یک کالکشن virtual از نقش ها دارم و در جدول نقش هم دو کالکشن virtual از کاربران و سطوح دسترسی.
خود Entity Framework برای پیاده سازی این حالت جداول واسطی درست می کند که آنها را UserInRole و PermissionInRole می نامد.
زمانی که برای بار اول برنامه را اجرا می کنم و در این دو جدول مقداری وجود ندارد.
در زمان افزودن نقش به کاربر یا زمان افزودن سطح دسترسی به نقش ، پیغام خطایی ظاهر می شود و می گوید
An exception of type 'System.NullReferenceException' occurred in MyProgram.dll but was not handled in user code
Additional information: Object reference not set to an instance of an object.
پیغام خطا به دلیل عدم وجود داده در جداول UserInRole و PermissionInRole است.
زمانی که دستی در این دو جدول یک رکورد ایجاد می کنم، برنامه بدون مشکل اجرا می شود و می توانم هر چند کاربر را به هر چند نقش یا هر چندد سطح دسترسی را به هرچند نقش که می خواهم اضافه کنم.
برای حل این مشکل میشه راه حلی پیشنهاد بدین؟
ممنون می شم.
سلام
اگر خطای شما در اپلیکیشن نبود داده اولیه است ، در EntityFramework Code First با استفاده از متد Seed میتونید مقدار های اولیه را برای این جداول قرار دهید.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)