2013-07-30 3 views
1

좋아요, 그래서 Simplemembership에 추가하고 있습니다.MVC4 엔티티 프레임 워크 및 Simplemembership Re-Creation

모델 UsersProfiles

namespace OilNGasWeb.Models 
{ 
[Table("Users")] 
public class UserProfiles 
{ 
    [Key] 
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
    public int UserId { get; set; } 

    public string UserName { get; set; } 

    public string FirstName { get; set; } 

    public string LastName { get; set; } 

    public string MiddleName { get; set; } 

    public string Initials { get; set; } 

    public string Company { get; set; } 

    public string Department { get; set; } 

    public string Title { get; set; } 

    public string Team { get; set; } 

    public string TeamSub { get; set; } 

    public string Phone { get; set; } 

    public string ImageLocation { get; set; } 

    public string CurrentlyAuthorized { get; set; } 

    public string Note { get; set; } 

    public string Comment { get; set; } 

    //public virtual dbClient Client { get; set; } 

    public virtual ICollection<Roles> Roles { get; set; } //many to many 
    public virtual ICollection<dbClient> Clients { get; set; } // many to many 

} 
} 

역할

namespace OilNGasWeb.Models 
{ 
[Table("webpages_Roles")] 
public class Roles 
{ 
    [Key] 
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
    [Required(ErrorMessage = "Required")] 
    public int RoleID { get; set; } 
    [Required(ErrorMessage = "Required")] 
    public string RoleName { get; set; } 

    public virtual ICollection<UserProfiles> UserProfiles { get; set; } //many to many 

} 
} 

지금 내가 본 것처럼이 수정하기 전에 creat에 많은 테이블에 많은 만들어 가지고 내 문제 내 질문은 테이블을 가져 오는 방법입니다.

webpages_UsersInRoles

차라리 EF는 RolesUserProfiles 대신 webpages_UsersInRoles

오류가 발생 위의 코드에서 다른 인스턴스

를 사용하는 MVC에게 SSMS로 가서 물리적으로 변경하지 않는 것을 선호

프로그램이 @if (User.IsInRole ("Administrator")) validade 사용자를 시도 할 때 보여줍니다.

은 당연히 나는 .... 정의에 저를 가지고 에서 IsInRole에 F12를 누르

그것을 수행하지만,이 모든 빈

이제 어떻게하지? 내게 숨겨진다면 어떻게 재 코딩 할 수 있니? 이 코드는 어디에 있으며 어떻게 수정할 수 있습니까? 내가이 모든 밖으로 싶습니다 무엇

  1. 입니다 중 하나 그들이
  2. 이 webpages_UsersInRoles
을 찾습니다 코드를 수정 할 수있는 생성되는대로 ManytoMany 테이블 의 이름을 변경

미리 감사드립니다.

답변

1

테이블의 이름을 바꿀 수 없습니다. 테이블 이름은 SimpleMembership에 하드 코딩되어 있습니다.

http://aspnetwebstack.codeplex.com/SourceControl/latest#src/WebMatrix.WebData/SimpleMembershipProvider.cs

는 EF 탐색 속성을 사용하지 마십시오 : 현재 소스 코드를 볼 수 있습니다. 회원 정보 또는 WebSecurity API를 통해이 정보에 액세스해야합니다.

정말로 이것을 원한다면 단순 멤버십에 필요한 테이블 이름을 사용하도록 EF를 구성해야합니다. 즉, 유창한 매핑 구문을 사용하는 것이지 직관적이지는 않습니다.

+0

그냥 영향을받는 webpages_UsersInRoles 테이블 일 뿐이니까? 내 사용자 테이블을 사용하고 있는데 이름에 대해 불평하지 않습니다. (SM과의 협력을 통해 암호를 생성하지 못했음) 아직 UserInRoles와 동일한 방식으로 작동하지 않는다고 가정합니다. –

+0

@DonThomasBoyle - SimpleMembership에서는 Users 테이블의 이름을 지정할 수 있으므로이를 구성 할 수 있습니다.그러나 webpages_ *로 시작하는 다른 테이블은 그렇지 않습니다. –

+0

정보 주셔서 감사합니다! 나는 그것에 대해 궁금해하고 있었다; P –