Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在使用UserManager标识创建用户时插入从属记录?_C#_Asp.net Mvc_Asp.net Identity_Business Rules - Fatal编程技术网

C# 如何在使用UserManager标识创建用户时插入从属记录?

C# 如何在使用UserManager标识创建用户时插入从属记录?,c#,asp.net-mvc,asp.net-identity,business-rules,C#,Asp.net Mvc,Asp.net Identity,Business Rules,我正在使用UserManager模式的标识。 当我需要创建一个新用户时,帐户控制器的注册操作有以下代码 var user = new WebUser() { UserName = model.Email, Email = model.Email, CreatedOn = DateTime.Now, FullName = model.Email, EmailConfirmed = true }; IdentityResult result = await RegisterService.Creat

我正在使用UserManager模式的标识。 当我需要创建一个新用户时,帐户控制器的注册操作有以下代码

var user = new WebUser() { UserName = model.Email, Email = model.Email, CreatedOn = DateTime.Now, FullName = model.Email, EmailConfirmed = true };
IdentityResult result = await RegisterService.CreateAsync(user, model.Password);

if (!result.Succeeded && ((string[])result.Errors).Length > 0)
{
    foreach (var erro in result.Errors)
    {
        ModelState.AddModelError("", erro);
    }
    return BadRequest(ModelState);

}
else if (!result.Succeeded)
    return InternalServerError();
现在它是有效的,但我的规则需要一些具体的东西。我数据库中的每个用户都需要在其他表中有一条记录。我如何实现它? 我觉得将“如果成功将记录创建到另一个表中”这样的规则放入控制器是错误的,因为我需要控制器中的事务作用域。我觉得这听起来很脏。
有人能帮我吗?

什么?这是控制器应该处理的我不知道。。。我所有的控制器都只处理表单数据的规则,比如如果所有需要的东西都来了(ModelState),然后我将viewmodel转换成一个模型,并将其发送到服务层(业务逻辑),服务层必须检查数据是否正常(比如它是否唯一并遵循规则)。在这之后,我的服务层执行逻辑,将数据保留在数据库中(插入/更新/删除链)。每个服务都有自己的逻辑来保存数据,而不是控制器。如果我有一个API和MVC控制器,逻辑将被复制,我认为它不正确。只需重写RegisterService.CreateAsync()方法并在那里添加自定义逻辑。