Entity framework 将成员 table 添加到我自己的数据库

Entity framework add member table to my own DB

我一直在关注这里的教程 -

http://www.asp.net/web-forms/overview/getting-started/getting-started-with-aspnet-45-web-forms/create_the_data_access_layer

构建 ASP.NET 网络应用程序。

这里发生的是

然而,与数据层对应的所有其他 tables 都是在一个单独的数据库中创建的,称为 "wingtiptoys" 并且所有与玩具店产品相关的数据恰好是making 存储在 tables 那里。

因此,我发现很难在这两个数据库中的 table 之间交换信息。

在我自己的应用程序中,tables 实际上有成员信息,我需要将这些信息与 ASP.NET 创建的成员 table 合并。

就此而言,我完全不知道从登录页面到默认用户 table 的机制是如何工作的。我只是发现在默认数据库中有一个 ASPNetUsers table,它有我在测试我的应用程序时用来登录的玩具用户信息,但我在代码中找不到 login/register 的任何位置告诉他们将用户信息存储在该名称的 table 中的页面。

简而言之,我如何创建获取默认数据库中的成员 table(ASP.NET 默认提供的功能)以与产品和其他 [=47] 进行交互=]s 位于为应用程序的数据层创建的单独数据库中。

一个选项是在后者中创建一个成员table,并以某种方式将数据从默认数据库ETL 到成员table。然而,这似乎效率低下。

另外,是否有默认方法获取当前登录用户的id?

回答您的第一个问题:您只需同时使用 DbContextApplicationDbContext 以及您为 "wingtiptoys" 命名的 DbContext)的不同实例.

关于你的第二个问题:在 Controller 的上下文中,可以通过 System.Web.HttpContext.User.Identity.Name 找到用户的用户名。在模型中,您必须使用 System.Web.HttpContext.Current.User.Identity.Name。给定用户的用户名,找到 UserId 应该很简单:

db.Users.Single(m => m.Username == User.Identity.Name).Id;