سؤال

كما لن يتم استخدام أي الدخول مقدمي لدي حاجة AspNetUserLogins الجدول.هل هناك أي طريقة أستطيع أن إزالة ذلك ؟

لقد حاولت هذه:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.Ignore<IdentityUserLogin<string>>();
}

ولكن أنا مجرد الحصول على Invalid object name 'dbo.UserLogin' خطأ كلما أتصل UserManager.FindAsync(username, password).

شكرا مقدما.

هل كانت مفيدة؟

المحلول

يبدو أنك لا تزال تستخدم ماكر في Microsoft.aspnet.Identity.entityFrameWork.Userstore الذي يتوقع أن تكون هذه الكيانات هناك. لم يكن الهدف من تطبيق EF الافتراضي هو تكوينه بهذه الطريقة.

ولكن USERMANAGER لا يسمح بإزالة معظم الوظائف التي لا تريدها، ولكن سيتعين عليك تنفيذ iuserstore الخاص بك دون مفهوم تسجيلات الدخول الخارجية (لا تنفذ Iuserloginstore.

نصائح أخرى

أعرف أن هذا قد تم الرد عليها, و أعتقد أن الكتابة مخصص UserStore هو بالفعل أنظف حل لإزالته تماما - ولكن إذا كنت ترغب في تجنب ذلك ، أقل نظيفة ، ولكن عملي الحل هو جعل "وهمية" AspNetUserLogins الرأي.

مثلا SQL Server:

create view AspNetUserLogins
as
select '' as LoginProvider, '' as ProviderKey, '' as UserId;

بالنسبة أوراكل وغيرها:

create view AspNetUserLogins
as
select '' as LoginProvider, '' as ProviderKey, '' as UserId
from dual;


يمكنك القيام بذلك عن أي هوية الجداول كنت لا تستخدم.انها لا تزال شيئا الجلوس التي لا تحتاج حقا ، ولكن المنظمة البحرية الدولية ، أفضل من طاولة الحقيقي.مرة أخرى - ليس الحل المثالي ، ولكن a الحل إذا كانت الكتابة مخصص UserStore هو شيء كنت ترغب في تجنب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top