如何在多个数据库表中发送数据



我创建了web api 2项目,该项目创建了一个本地数据库,其中有一个表"AspNetUser"。我已将这些表与我自己的数据库合并。在我的数据库中,我有一个表"员工信息",它将存储该员工的所有信息,除了他的电子邮件、密码和用户名,所有其他信息都将存储在"雇员信息"表中。

这是预先编写的注册用户代码:

[AllowAnonymous]
        [Route("Register")]
        public async Task<IHttpActionResult> Register(RegisterBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }
            var user = new ApplicationUser() { UserName = model.UserName, Email = model.Email};
            IdentityResult result = await UserManager.CreateAsync(user, model.Password);
            if (result.Succeeded)
            {
                var currentUser = UserManager.FindByName(user.UserName);
                var roleresult = UserManager.AddToRole(currentUser.Id, model.SelectedRole);

            }
            else if (!result.Succeeded)
            {
                return GetErrorResult(result);
            }
            return Ok();
        }

这是我自己注册用户的逻辑:

 [ResponseType(typeof(EmployeeInformation))]
        [ActionName("EmployeeInfo")]
        [DeflateCompression]
        public IHttpActionResult PostEmployeeInformation(EmployeeInformation EmployeeInfo)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }
            db.EmployeeInformations.Add(EmployeeInfo);
            db.SaveChanges();

那么,我如何将电子邮件、密码和用户名存储在"AspNetUser"表中,并将所有其他信息(姓名、父亲姓名、dob等)存储在"EmployeeInformation"表中。谢谢

只需添加ApplicationUserEmployeeInformation实体之间的关系:

public class ApplicationUser: IdentityUser
{
    // other properties
    public int EmployeeInformationID {get;set;}
    public virtual EmployeeInformation EmployeeInformation {get;set;}
}

EmployeeInformation类执行相同操作

public class EmployeeInformation
{
    // other properties
    public string UserID {get;set;}
    public virtual ApplicationUser User {get;set;}
}

现在您有了用户额外信息的seprate类,例如您可以写:

public IHttpActionResult PostEmployeeInformation(EmployeeInformation employeeInfo)
{
    employeeInfo.UserID="your desired user id, current user id for example";
    db.EmployeeInformations.Add(employeeInfo);
    db.SaveChanges();
}

相关内容

  • 没有找到相关文章

最新更新