.net 主数据库中的访问控制和用户信息

.net 主数据库中的访问控制和用户信息,.net,asp.net-mvc-3,sql-server-2005,sql-server-express,user-accounts,.net,Asp.net Mvc 3,Sql Server 2005,Sql Server Express,User Accounts,我们有一个数据库来执行我们的操作。应用程序从Oracle数据库获取记录,MSSQL处理这些记录,将它们与生物识别机器数据进行统计,然后将这些信息存储到MSSQL中。在开发人员的机器上,我安装了sql express 2008,而在生产服务器上,他们安装了sql server 2005。我需要存储用户帐户及其身份验证详细信息、角色,还需要建立用户与其他实体之间的关系 是否有办法将用户表映射到EF模型,以便我们可以将其与其他实体关联 -我们能否将ASPNETDB.MDF作为所有实体的主数据库 -我们

我们有一个数据库来执行我们的操作。应用程序从Oracle数据库获取记录,MSSQL处理这些记录,将它们与生物识别机器数据进行统计,然后将这些信息存储到MSSQL中。在开发人员的机器上,我安装了sql express 2008,而在生产服务器上,他们安装了sql server 2005。我需要存储用户帐户及其身份验证详细信息、角色,还需要建立用户与其他实体之间的关系

是否有办法将用户表映射到EF模型,以便我们可以将其与其他实体关联

-我们能否将ASPNETDB.MDF作为所有实体的主数据库

-我们是否可以将用户角色、用户配置文件、成员信息和相应的存储过程从ASPNETDB迁移到另一个db中

编辑:

我找到了这篇文章,它帮助我找到了使用实用工具为任何SQLServer数据库配备成员资格、用户、配置文件表和存储过程的方法

更新:

在AccountsModel中,我创建了AccountDetails类

public class AccountDetails : ProfileBase
{
    public int TerminalId { get; set; }
}
&在TerminalModel中:

public ICollection<AccountDetails> UserProfiles { get; set; }
实际上,我只需要在Users表中添加一个属性FK TerminalId。但是文档建议在用户表中附加属性,我们需要使用profile。那么使用上面的代码如何从UserProfiles获取MembershipUser集合呢?我应该循环收集还是有任何圆滑的方式来执行操作。。。比如:

public static ICollection<MembershipUser> GetUsersFromProfiles(ICollection<AccountDetails> mProfiles)
{
     /* it is not accepting the Membership.GetAllUsers()... 
        Error: "Could not find an implementation of the query pattern for source
        type 'System.Web.Security.MembershipUserCollection'.  'Where' not found.
        Consider explicitly specifying the type of the range variable 'm'.*/
     return (from m in Membership.GetAllUsers()
             where m.UserName = mProfiles.SelectMany(profile=>profile.UserName)
             select m);
}
当我尝试在ConvertToTerminalArray方法中保存记录时:

public class Terminal
{
    [Key]
    public int Id { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 2)]
    [Display(Name = "Terminal Name")]
    public string TerminalName { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 2)]
    [Display(Name = "Location")]
    public string Location { get; set; }

    public static Terminal[] ConvertToTerminalArray(string terminalName = "Tango 1")
    {
        ApplicationServices db = new ApplicationServices();
     //   var dsd=new CreateDatabaseIfNotExists<ApplicationServices>();
     //   dsd.InitializeDatabase(db);
        Terminal [] terminal = new Terminal[1];
        terminal[0] = new Terminal();
        terminal[0].TerminalName=terminalName;
        terminal[0].Location = "South West Coast";
        db.Terminals.Add(terminal[0]);
        db.SaveChanges();

        return terminal;

    }
}

它给了我这个错误:

无效的对象名称“dbo.Terminals”。描述:一个未处理的 执行当前web请求期间发生异常。 请查看堆栈跟踪以了解有关错误和错误的更多信息 它起源于代码的地方

异常详细信息:System.Data.SqlClient.SqlException:无效对象 名称为“dbo.Terminals”

源错误:

第34行:终端[0]。位置=西南海岸;线 35:db.Terminals.addterminals[0];第36行: db.SaveChanges;第37行:第38行:返回终端

ApplicationServices上下文如下所示:

public class ApplicationServices : DbContext
{
    public ApplicationServices()
    {
        Database.SetInitializer(new CreateDatabaseIfNotExists<ApplicationServices>());
    }

    public DbSet<Terminal> Terminals { get; set; }
}
请帮忙