我有一个web api 2应用程序,其中我使用了asp.net identity 2.0和Entity框架。在MySql数据库中,我添加了这个表ajt_collaborator
CREATE TABLE `ajt_collaborator` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`marital_status` enum('M','MLLE','MME') DEFAULT NULL,
`address` text,
`Nom` text,
`Prenom` text,
`id_user_fk` varchar(128) NOT NULL,
`deletion_date` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `collaborator_user_fk` (`id_user_fk`),
CONSTRAINT `collaborator_user_fk` FOREIGN KEY (`id_user_fk`) REFERENCES `aspnetusers` (`Id`)
)
指的是aspnetusers
CREATE TABLE `aspnetusers` (
`Id` varchar(128) NOT NULL,
`Hometown` text,
`Email` varchar(256) DEFAULT NULL,
`EmailConfirmed` tinyint(4) NOT NULL,
`PasswordHash` text,
`SecurityStamp` text,
`PhoneNumber` text,
`PhoneNumberConfirmed` tinyint(4) NOT NULL,
`TwoFactorEnabled` tinyint(4) NOT NULL,
`LockoutEndDateUtc` datetime DEFAULT NULL,
`LockoutEnabled` tinyint(4) NOT NULL,
`AccessFailedCount` int(11) NOT NULL,
`UserName` varchar(256) NOT NULL,
PRIMARY KEY (`Id`)
)
我需要将这些表合并到第二个表中,并在应用程序中识别aspnetusers
的其他属性。
- 这是可能的吗?
- 实现这一目标的步骤是什么?
如果你想合并ajt_collaborator到AspNetUsers.
你可以从ajt_collaborator表中添加额外的属性到ApplicationUser实体类镜像字段。
public class ApplicationUser : IdentityUser
{
//...
public string Address { get; set; }
}
你会发现AspNetUser表列在通用的IdentityUser中被定义为属性。
这将在重新创建模式时向AspNetUsers表添加新的字段。或者您可以使用迁移而不需要重新创建模式。https://msdn.microsoft.com/en-us/data/jj591621.aspx
如果你想合并AspNetUsers到ajt_collaborator.
然后你可以映射ApplicationUser到ajt_collaborator表
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
//...
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<ApplicationUser>().ToTable("ajt_collaborator");
}
}
再次向ApplicationUser实体类添加所需属性,以镜像ajt_collaborator表中的列。