2014-07-25 2 views
0

ASP.NET MVC 5.0 EF 6.0 및 Identity 1.0을 사용하여 응용 프로그램을 작성하고 있습니다.ASP.NET ID 계정 만들기

나는 현재 성공적으로 실행되는 시드 함수를 가지고 있으며 '교사'와 같은 다양한 데이터를 데이터베이스에 삽입합니다. seed 함수를 확장하여 새 Teacher를 만들 때 AspNetUsers 테이블에 새 사용자 계정을 만들도록하고 싶습니다.

내가 파일 'SampleData.cs'에 다음 코드를 시도

:

using System.Collections.Generic; 
using System.Linq; 
using System.Data.Entity; 
using Oberhofen.EdNow.Data.Models; 
using Oberhofen.EdNow.Model.Models; 
using Microsoft.AspNet.Identity; 
using Microsoft.AspNet.Identity.EntityFramework; 
using System; 

namespace Oberhofen.EdNow.Data 
{ 
    public class EdNowSampleData : DropCreateDatabaseIfModelChanges<EdNowEntities> 
    { 
     private UserManager<ApplicationUser> userManager; 

     protected override void Seed(EdNowEntities context) 
     { 
      // Create a new Account. 
      string UserName = "wallock"; 
      string Password = "Password"; 

      var user = new ApplicationUser { UserName = UserName, Email = "[email protected]" }; 
      var result = userManager.Create(user, Password); 

      var userId = user.Id; 

      // Create new Teachers. 
      var teachers = new List<Teacher> 
      { 
       new Teacher { FirstName = "Walter", LastName = "Lockhart", PersonTypeId=2, UserId=userId } 
      }; 
      teachers.ForEach(tchr => context.Teachers.Add(tchr)); 
      context.Commit(); 
     } 
    } 
} 

나는 줄에서 코드를 실행하면 :

var result = userManager.Create(user, Password); 

나는 다음과 같은 예외가 얻을 :

'System.ArgumentNullException'형식의 예외가 Microsoft.AspNet.Identity.Core.dll>에서 발생했지만 사용자 코드에서 처리되지 않았습니다. 값은 null 일 수 없습니다. 매개 변수 이름 : 관리자

이 예외의 원인이 될 수있는 코드에 누락 된 부분이 있으면 알려주십시오.

미리 감사드립니다.

감사

월터

+2

'userManager'가 null입니다. 아직 인스턴스화하지 않았습니다. – rikitikitik

답변

1

당신은이 작업을 수행해야 결과 넣어 전에 :

userManager = new UserManager<ApplicationUser>(); 

또는 선언에 null로 설정합니다.

+0

감사합니다 rikitikitik 및 로버트 P. 여기 내 마지막 작업 코드 : UserManager _userManager = 새 UserManager (새 UserStore (context)); user = new ApplicationUser() {UserName = "walterlockhart", Email = "[email protected]"}; IdentityResult result = _userManager.Create (사용자, "암호"); –