2013-07-30 65 views
1

好吧,我添加到Simplemembership。MVC4實體框架和簡單會員資格重新創建

型號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 

} 
} 

現在我有它創造了多對多的表像我看到了修改之前創造我的問題我問題是如何讓這些表重命名

webpages_UsersInRoles

我寧願不要進入SSMS和物理改變他們,而告訴MVC上述EF生產RolesUserProfiles而不是webpages_UsersInRoles

錯誤使用不同的實例

從代碼顯示程序何時嘗試@if(User.IsInRole(「Administrator」))validade用戶。

當然,我打F12上IsInRole帶我去定義....

它確實存在,但都是空

現在怎麼辦?我如何重新編碼,如果它從我隱藏?代碼在哪裏,以及如何修改此?

我想出來的這一切是什麼

  1. 或者重命名錶多對多爲正在創建它們
  2. 能夠修改查找webpages_UsersInRoles
代碼

在此先感謝。

回答

1

您不能重命名錶。表名在SimpleMembership中被硬編碼。你可以看到源代碼在這裏:

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

不要使用EF導航性能。您應該通過Membership或WebSecurity API訪問這些信息。

如果你真的想這樣做,那麼你將需要配置EF使用簡單成員資格所需的表名,這意味着使用流利的映射語法..這不完全直觀。

+0

嘿,只是順便說一句,它只是受影響的webpages_UsersInRoles表?我正在使用我自己的用戶表,它並不抱怨名稱。 (它與SM一起工作,並沒有破壞創建與我的Costum Usertale鏈接的密碼),但我認爲它與UserInRoles的工作方式不一樣嗎? –

+0

@DonThomasBoyle - SimpleMembership允許您指定Users表的名稱,以便可配置。但是,以網頁_ *開頭的其他表不是。 –

+0

感謝您的信息!我在想這個; P –