0

표준 ASP.NET MVC4 응용 프로그램이 있고 EF 코드 우선 DAL을 구축하고 있습니다. 현재 20-30 가지 모델이 있으며 사용자와 역할을 통합하고자하는 시점에 있습니다. 나는이 톤에 대한 연구를 해왔고 여전히 작동시키지 못하고있다. 여기에 내가 지금 무엇을 가지고 : 내 데이터베이스시 초기화 클래스에서 SimpleMembershipProvider가 데이터베이스에 테이블을 추가하지 않습니다.

나는 데이터의 무리와 함께 씨앗 (I 모델을 변경할 때마다 호출되는), 다음이 전화 :

public class DbInit : DropCreateDatabaseIfModelChanges<TrackerContext> 
{ 
    protected override void Seed(TrackerContext context) 
    { 
     ...seed stuff and save it... 
     WebSecurity.InitializeDatabaseConnection("TrackerContext", "User", "Id", "UserName", autoCreateTables: true); 
    } 
} 

그것을 디버깅을 통해 어떤 오류도 발생시키지 않으며이 코드 줄을 친다는 것을 확인할 수 있습니다. 내 사용자 모델은 다음과 같습니다 : I 읽고

모두에서
public class User 
{ 
    public int Id { get; set; } 
    public string UserName { get; set; } 
    public string Password { get; set; } 
    public string Email { get; set; } 
    public PasswordQuestion PasswordQuestion{ get; set; } 
    public string PasswordAnswer { get; set; } 
    public string Type { get; set; } 
} 

, 나는 이것이 내가이 작업을 얻기 위해해야 ​​할 일은해야한다 생각했지만 두 가지 문제가 있습니다

  1. 없음 회원 테이블은

  2. 내 구성 내가 WebMatrix.WebData DLL을

를 참조하고 있더라도 오류를 던지는 것 같다로드되는

<roleManager enabled="true" defaultProvider="SimpleRoleProvider"> 
    <providers> 
    <clear/> 
    <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/> 
    </providers> 
</roleManager> 
<membership defaultProvider="SimpleMembershipProvider"> 
    <providers> 
    <clear/> 
    <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" /> 
    </providers> 
</membership> 

내가 여기 실종 무엇 : 여기

는 설정 부분입니까?

답변

0

는 지금까지, 당신은 당신의 상황에 맞는 클래스에서

public DbSet<User> User{ get; set; } 

을 놓치고있어. 당신은 데이터베이스에 당신을 위해 Migrations을 생성하기를 원할 때마다이 작업을 수행해야합니다.

+0

당신이 원하는 클래스의 DbContext 클래스를 만들었다면, 이것은 마이그레이션이 시작되어 이러한 테이블을 생성하는 곳입니다. 그러나이 특정 문제에 대해서는 Simple Membership Provider로 생성 된 테이블에 대해 이야기하고 있습니다. 이러한 테이블은 WebSecurity.InitializeDatabaseConnection (...) 줄을 호출 할 때 만들어집니다. 이 질문은 일종의 더 오래된 질문이기 때문에 정확한 문제가 무엇인지 알지 못하지만 이제는 일반적으로이 행을 global.asax에두고 마이그레이션과는 별개로 작동합니다. – ledgeJumper

+0

Simple Membership Provider가 데이터베이스에 포함하는 테이블에 대해 이야기하고 있습니까? 이 튜토리얼에서는 2 개의 튜토리얼을 소개합니다. 그 테이블을 만들지 않았기 때문에 수동으로 만들어야했기 때문에 비슷한 문제가있었습니다. 그러나 나는 그것이 당신을 해결했다고 읽게되어 기쁘다. – Yustme

0

1) ConnectionString을 확인 했습니까? 이런 식으로 뭔가를해야합니다

<connectionStrings> 
    <add name="DefaultConnection" connectionString="data source=SERVER;initial catalog=DATABASE;user id=USER;password=PASSWORD;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

은 또한 당신도 당신의 설정이 있어야한다 :

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 

    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    </entityFramework> 

2) 귀하의 참조를 확인하십시오. System.Web.Webpages이 있어야하고 CopyLocal을 true로 설정해야합니다. 그런 다음 .NET Framework 버전도 확인하십시오 (클라이언트 버전 없음 4.0)

희망이 도움이됩니다. 내가 볼 수있는