我正在探讨新的SimpleMembership提供程序如何使用EF Code First在MVC 4中工作。到目前为止,我已经把一切都运行得很好了,但是我遇到了一些我不太了解的事情。
SimpleMembership通过以下代码行自动创建多个表:
WebSecurity.InitializeDatabaseConnection("DatabaseContext", "User", "Id", "Email", autoCreateTables: true);
我有一个名为“User”的Code First实体来存储我所有特定于域的用户数据。因此,使用WebSecurity类,我可以通过各种方式获取我需要的用户ID,然后查询我的用户实体以获取我的域特定数据。但是,由于SimpleMembership自动创建的“webpages_xxxx”表没有POCO类,因此我无法通过EF轻松访问这些类。具体来说,我有兴趣获取webpages_Membership表,这样当我有一个用户ID时,我可以获得“IsConfirmed”,“PasswordVerificationToken”等字段。
常识说我只需要编写一些POCO类来代表表结构,但感觉应该有一些更开箱即用的东西。微软是否让我们只编写我们自己的POCO类代表他们的表结构,或者我错过了什么?
答案 0 :(得分:0)
如果我理解,您的方案是:使用SimpleMembership,然后首先使用代码访问数据,我的表位于同一个数据库中。
这是可能的。 我使用EF团队的一个很好的工具,http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d用于此目的。
使用 EF powertool ,您可以生成用于访问现有数据库的CodeFirst代码。
HOW: 安装powertool。 (见上面的链接) 将鼠标放在项目代码应该去的地方。 右键单击项目, 选择实体框架,从数据库中反向工程代码。
宾果。您可以将POCO类添加到模型和上下文中。并且您可以读取和写入标准会员表。