2014-06-21 5 views
38

मुझे अपने ऐप में एएसपी.NET पहचान का उपयोग करने में त्रुटि मिली।एएसपी.नेट पहचान - प्रति प्रकार एकाधिक ऑब्जेक्ट सेट समर्थित नहीं हैं

प्रति ऑब्जेक्ट एकाधिक ऑब्जेक्ट सेट समर्थित नहीं हैं। ऑब्जेक्ट 'पहचान उपयोगकर्ता' और 'उपयोगकर्ता' सेट करता है, दोनों में 'अनुशंसा प्लेटफ़ॉर्म। मॉडल। एप्लिकेशन यूज़र' के उदाहरण शामिल हो सकते हैं।

मैंने स्टैक ओवरफ्लो में इस त्रुटि के बारे में कुछ प्रश्न देखा। सभी एक ही प्रकार के दो डीबीसेट ऑब्जेक्ट पर इंगित करते हैं। लेकिन मेरे डीबीकॉन्टेक्स्ट में डीबीसेट्स के समान प्रकार नहीं हैं। अपवाद में FindAsync पर फेंका में() विधि, loggin दौरान।

if (ModelState.IsValid) 
    var user = await UserManager.FindAsync(model.UserName, model.Password); 
    if (user != null && user.IsConfirmed) 
    { 

समस्या मैं ही प्रकार के दो DbSets नहीं है। मेरे संदर्भ कि तरह लग रहे:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext() 
     : base("DefaultConnection") 
    { 
    } 

    public System.Data.Entity.DbSet<RecommendationPlatform.Models.ApplicationUser> IdentityUsers { get; set; } 

} 

और

public class RecContext : DbContext 
{ 
    public RecContext() 
     : base("RecConnection") 
    { 
     Database.SetInitializer<RecContext>(new DropCreateDatabaseIfModelChanges<RecContext>()); 
    } 

    public DbSet<Recommendation> Recommendations { get; set; } 
    public DbSet<Geolocation> Geolocations { get; set; } 
    public DbSet<Faq> Faqs { get; set; } 
    public DbSet<IndexText> IndexTexts { get; set; } 
} 

क्या इस समस्या का कारण हो सकता है? शायद कुछ अंतर्निहित एएसपी.NET पहचान कार्यक्षमताओं से जुड़ा हुआ है? वैसे भी, उपयोगकर्ता क्या टाइप करते हैं? मेरे पास यह मेरे ऐप में नहीं है ...

उत्तर

81

आपके पास दो प्रकार के DbSet एस` हैं।

public DbSet<T> Users { get; set; } 

आप अपने वर्ग में दूसरा एक घोषणा कर रहे:

IdentityDbContext<T> ही Users संपत्ति घोषित रूप में शामिल है।

+0

धन्यवाद मार्सिन। :) वैसे - बहुत अच्छा ब्लॉग। स्वागत करती हैं। – magos

+0

यह कहां है ??? IdentityModel.cs अंदर –

+9

देखो, तुम सार्वजनिक वर्ग ApplicationDbContext मिलेगा: IdentityDbContext इस संदर्भ के अंदर, वी.एस. कभी कभी DbSet कहते हैं ApplicationUsers –

57

समीक्षा इस फाइल "ApplicationDbContext.cs", रेखा, पाड़ पिछले द्वारा स्वचालित रूप से उत्पन्न निकालने के लिए, इस तरह होना चाहिए:

public System.Data.Entity.DbSet<Manager.Models.ApplicationUser> IdentityUsers { get; set; } 
+1

समस्या को हल करती है .. यह मेरे साथ हुआ है – lawphotog

+3

मुझे भी। एफ ..... एफ ...... एस –

+0

धन्यवाद, अब मुझे पता है कि अपराधी यह मचान है कि नया नियंत्रक विज़ार्ड अभी किया था। – VivekDev

संबंधित मुद्दे