2013-12-18 3 views
3

거의 2 일 동안 검색했지만 답변을 찾을 수 없으므로 여기에서 질문합시다.IdentityDbContext에서 생성 된 테이블을 편집하는 방법

방금 ​​ASP.NET MVC 5를 사용하기 시작했습니다. 이제 기본 ApplicationUser : IdentityUser 클래스를 확장하여 사용자에 대한 추가 정보를 저장합니다. 확장 기능 중 하나는 사용자가 속한 조직을 저장하는 것이 었습니다. 조직에는 여러 사용자가있을 수 있습니다. 응용 프로그램에서 모든 조직에 사용자를 추가 할 수 있기를 원합니다. 또한 조직을 직접 관리 할 수 ​​있기를 원합니다. 여기 내 모델은 다음과 같습니다.

public class ApplicationUser : IdentityUser 
{ 
    [Required] 
    [MaxLength(30)] 
    public string FirstName { get; set; } 

    [Required] 
    [MaxLength(30)] 
    public string LastName { get; set; } 

    [Required] 
    [MaxLength(40)] 
    public string Email { get; set; } 

    [Required] 
    public virtual Organisation Organisation { get; set; } 
} 

public class Organisation 
{ 
    public int id { get; set; } 

    [Required] 
    [MaxLength(30)] 
    public string Name { get; set; } 

    [Required] 
    public DateTime RegistrationDate { get; set; } 

    [Required] 
    [MaxLength(30)] 
    public string DWId { get; set; } 
} 

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    //... 
} 

마이그레이션 후, EF는 조직을위한 별도의 테이블을 생성했습니다. 여태까지는 그런대로 잘됐다.

이제 조직 테이블에서 조직을보고 추가/제거/삭제할 수 있기를 원합니다. 이를 위해 컨트롤러를 만들었습니다. 그러나 컨트롤러 내부에서 뷰에 모델로 전달할 수 있도록 조직 테이블을 참조 할 수 없습니다.

public ActionResult Organisation() 
{ 
    ApplicationDbContext _db = new ApplicationDbContext(); 

    var model = _db.Organisations.ToList(); //this does not work 

    return View(model); 
} 

내가 만드는 시도, 그것은

'TrendfinderMVC.Models.ApplicationDbContext는'조직에 대한 정의를 포함하지 않는 말한다 : 여기 염두에두고 있지만, 이렇게하지 못하는 것입니다 '없이 연장 방법 "TrendfinderMVC.Models.ApplicationDbContext'형 의 첫번째 인수를 받아 '조직 볼 수 ( 당신이 사용 지시문 또는 어셈블리 참조가?)

,

실제로 '_db.'를 입력하기 시작하면서 IntelliSense는 목록에있는 조직과 관련된 내용을 표시하지 않았습니다. 현재 모든 조직의 목록을 어떻게 얻을 수 있습니까? 어떤 통찰력이라도 대단히 감사하겠습니다.

+0

'VAR 모델 = _db.Organisations.ToList()에서 조직의 당신의 세트를 선언 한 확인하십시오; // 이것은 작동하지 않습니다. 대신 어떻게됩니까? – damienc88

+0

@ damienc88, 방금 작성한 내용을 포함하도록 원래 메시지 (마지막 부분)를 편집했습니다. – Nay

+0

코드 철자를 검사해야합니다 :'organization' –

답변

1

당신은 당신의 ApplicationDbContext 클래스

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

    public DbSet<Organisation> Organisations { get; set; } 
    ... 
} 
+1

Thanks heaps @ damienc88, 문제를 해결합니다. 나는 그들이 자동적으로 창조되었다는 인상하에 있었다. – Nay