Asp.net mvc 4 MVC&x27;创建用户';方法

Asp.net mvc 4 MVC&x27;创建用户';方法,asp.net-mvc-4,architecture,Asp.net Mvc 4,Architecture,目前,我需要注册一个新用户,同时创建一个“账户组合”记录,然后将他分配到该组合中 因此,有3个数据库写入 我有一个TwitterBootstrap UI,使用MVC4,然后进入服务、逻辑和数据访问层,使用EntityFramework5保存到SQLServer 此时,当用户单击“注册”时,我创建了一个“用户”数据传输对象,该对象基本上包含用户的详细信息。然后我创建一个“公文包”对象,它只有“Description”和“Id”。我已经在我的“用户”服务类中创建了一个名为“RegisterNewUs

目前,我需要注册一个新用户,同时创建一个“账户组合”记录,然后将他分配到该组合中

因此,有3个数据库写入

我有一个TwitterBootstrap UI,使用MVC4,然后进入服务、逻辑和数据访问层,使用EntityFramework5保存到SQLServer

此时,当用户单击“注册”时,我创建了一个“用户”数据传输对象,该对象基本上包含用户的详细信息。然后我创建一个“公文包”对象,它只有“Description”和“Id”。我已经在我的“用户”服务类中创建了一个名为“RegisterNewUserWithPortfolio”的服务方法。它接受两个对象。然后,它调用我的UserLogic中的逻辑服务类方法,使用相同的名称和参数

然后,它在UserData类中调用一个“Save”方法,将UserDto传递给该方法,该方法将返回刚刚保存的用户的新Id

public class PersonDto
{
    public int Id { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
    public string Firstname { get; set; }
    public string Surname { get; set; }
    public string Email { get; set; }
}
然后调用AccountPortfolioData类中的Save方法,将保存的PortfolioDto传递给它,然后再次返回Id

然后我调用UserData类中名为'AssignUserToPortfolio'的方法,获取用户ID和PortfolioId。。。然后这就被拯救了

我现在有一个新用户,链接到一个公文包

我不能在EF事务中这样做,因为我调用了不同的数据保存类(因为我的每个实体都有自己的类,以帮助将它们分开并更易于管理)

首先,我这样做对吗?有更好的办法吗? 如果是这样的话,有没有一种方法可以将整个通话组放入一个事务中


注意,我的Dto对象只是用于在层之间传递数据的自定义哑对象。我也没有将EF模型传递给UI。我试图将所有内容分层并分开。

问题不是很清楚,但根据我的理解,最简单的方法是为您的用户和公文包类映射ER关系

因此

公共类用户{
//
//
//
公共虚拟ICollection公文包
}
公课档案{
//
public int UserId{get;set;}
[外键(“用户ID”)
公共虚拟用户用户{get;set}
} 
实体框架会自动映射关系。希望这能让你开始

Public class User{

//
//
//
 public virtual ICollection<Portfolio> Portfolios
}

Public Class Portfolio{
//
public int UserId{get; set;}

[ForeignKey("UserId")
public virtual User user{get; set}
}