مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

ehsani2013

عضویت از 1394/12/06

پياده سازي identity 2 در unitof work

  • شنبه 9 اردیبهشت 1396
  • 05:07
تشکر میکنم

با سلام و احترام 

چطور ميتونم identity 2 رو تو unitofwork پياده كنم و بين مدل هاي خودم و جدول يوزر relation برقرار كنم و از اين ارتباط تو پروژه استفاده كنم . 

ممنون

پاسخ های این پرسش

تعداد پاسخ ها : 8 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 9 اردیبهشت 1396
  • 05:21

میتونید برای Context identity یک unit درست کنید

برای رابطه هم مشکلی نداره میتونید به سادگی navigation property ها را در مدل identity پیاده سازی کنید

کاربر سایت

ehsani2013

عضویت از 1394/12/06

  • شنبه 9 اردیبهشت 1396
  • 06:52

ممنون مهندس ، 

ميتونيد براي ساخت context identity توضيح بيشتري بدين . چون من اگه بخوام جداولي مثل AspNetRoles رو تو يونيت بزارم كه نميتونم رفرنس بدم . اما اگر ApplicationUserManager بزارم چطور بايد تو استارت آپ كه داره Create ميشه بايد به چه صورتي عمل كنم ؟

کاربر سایت

ehsani2013

عضویت از 1394/12/06

  • شنبه 9 اردیبهشت 1396
  • 08:16

نمونه اي دارين از اين پياده سازي ؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 9 اردیبهشت 1396
  • 08:21

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

کاربر سایت

ehsani2013

عضویت از 1394/12/06

  • شنبه 9 اردیبهشت 1396
  • 08:35

و يه مورد ديگه اينكه اصلا توصيه ميكنيد استفاده از پترن UnitOfWork رو در مورد Identity ؟ 

يا اينكه اون كار خودشو انجام بده بقيه ديتابيس كار خودشون رو ؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 9 اردیبهشت 1396
  • 08:54

من معمولا اینکار را انجام نمیدم و میزارم خودش کارش رو انجام بده

کاربر سایت

ehsani2013

عضویت از 1394/12/06

  • شنبه 9 اردیبهشت 1396
  • 15:08

مهندس عزيز چطور MyContext رو با ApplicationDbContext يكي كنم ؟ چون تو Relation به مشكل خوردم .

 public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("MyContext", throwIfV1Schema: false)
        {
        }

        static ApplicationDbContext()
        {
            // Set the database intializer which is run once during application start
            // This seeds the database with admin user credentials and admin role
            Database.SetInitializer<ApplicationDbContext>(new ApplicationDbInitializer());
        }

        public static ApplicationDbContext Create()
        {
            return new ApplicationDbContext();
        }
    }

بعد از migration اين پيغام رو ميده و ميگه تو اين جداول كليد تعريف نشده كه دسترسي هم بهشون نداريم !

One or more validation errors were detected during model generation:

DAL.IdentityUserLogin: : EntityType 'IdentityUserLogin' has no key defined. Define the key for this EntityType.
DAL.IdentityUserRole: : EntityType 'IdentityUserRole' has no key defined. Define the key for this EntityType.
IdentityUserLogins: EntityType: EntitySet 'IdentityUserLogins' is based on type 'IdentityUserLogin' that has no keys defined.
IdentityUserRoles: EntityType: EntitySet 'IdentityUserRoles' is based on type 'IdentityUserRole' that has no keys defined.

ممنون

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 10 اردیبهشت 1396
  • 11:19

نیازی نیست یکی کنید

چون Comtext در Identity با تنظیمات Owin کار میکنه

اگر هم باید انجام بدید میتونید سرچ کنید چون من تجربه ای در این ضمینه ندارم

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)