1

好的,所以我要添加到 Simplemembership。

模型用户配置文件

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

}
}

我现在的问题是我已经创建了多对多的表,就像我在修改之前看到它创建我的问题是如何让这些表重命名

网页_UsersInRoles

我宁愿不进入 SSMS 并在物理上更改它们,而是告诉 MVC 使用不同的实例

从上面的代码 EF 生成RolesUserProfiles而不是pages_UsersInRoles

当程序尝试 @if (User.IsInRole("Administrator")) 验证用户时,会显示该错误。

自然地,我在IsInRole上按F12以使我了解定义....

确实如此,但那里都是空的

怎么办 ?如果它对我隐藏,我该如何重新编码?代码在哪里,我该如何修改?

我想要的是

  1. 在创建表时重命名表ManytoMany
  2. 能够修改查找 pages_UsersInRoles 的代码

提前致谢。

4

1 回答 1

1

您不能重命名这些表。表名在 SimpleMembership 中硬编码。您可以在此处查看源代码:

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

不要使用 EF 导航属性。您应该通过 Membership 或 WebSecurity API 访问此信息。

如果您真的想这样做,那么您需要将 EF 配置为使用简单成员资格所需的表名,这意味着使用流畅的映射语法......这并不完全直观。

于 2013-07-30T23:25:22.403 回答