MVC'创建用户'方法

时间:2013-12-29 04:51:21

标签: asp.net-mvc-4 architecture

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

所以,3个数据库写入。

我有一个Twitter-Bootstrap UI,使用MVC4,然后转到服务,逻辑和数据访问层,它使用Entity Framework 5保存到SQL Server。

目前,当用户点击“注册”时,我创建了一个“用户”数据传输对象,该对象基本上包含有关用户的详细信息。然后我创建一个'Portfolio'对象,它只有'Description'和'Id'。我在我的'User'服务类中创建了一个名为'RegisterNewUserWithPortfolio'的服务方法。它需要两个对象。然后,它在我的UserLogic中调用逻辑服务类方法,具有相同的名称和参数。

然后在UserData类中调用“Save”方法,将UserDto传递给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'的方法,获取UserId和PortfolioId ......然后保存。

我现在有一个新用户,链接到投资组合。

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

首先,我做得对吗?有没有更好的办法? 如果是这样,有没有办法可以将整组调用放入交易中?

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

1 个答案:

答案 0 :(得分:0)

问题不是很明确,但我从理解的最简单的方法来为您的用户和投资组合类映射ER关系

因此

Public class User{

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

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

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

实体框架会自动映射关系。希望这能让你开始。