在其他服务保存后,在服务中使用模型数据。

时间:2017-04-06 19:04:55

标签: c# .net asp.net-mvc

我有一个索引控制器,可以获取用户数据并将其保存到我的应用程序中的模型中。这发生在下面的“CustomAuth”调用期间。

[CustomAuth(group = "Role-View")]
public class IndexController : Controller
{
    public ActionResult Index()
    {
        try
        {
            //call to progService
            return View();
        }
        catch (Exception e)
        {
            Error.Log(e, log.LogGuid, this.User.Identity.Name);
            return View();
        }
    }
}

以下是我用于将内容分配给模型的代码。

public void CheckForUser(string username, string firstName, string lastName, string emailAddress, string phoneNumber)
    {
        var userDataModel = new UserDataModel();
        userDataModel.username = username;
        userDataModel.firstName = firstName; 
        userDataModel.lastName = lastName;
        userDataModel.emailAddress = emailAddress;
        userDataModel.phoneNumber = phoneNumber;

        var userexists = db.PARTies.Any(x => x.ABBR_NM == username);
        if (userexists)
        {
            var updateUser = db.PARTies.SingleOrDefault(x => x.ABBR_NM == username);
            //Get and assign the partId to the model. 
            userDataModel.partyId = updateUser.PARTY_ID;
            //Update any fields that are relevant.
            updateUser.FIRST_NM = userDataModel.firstName;
            updateUser.LAST_NM = userDataModel.lastName;
            updateUser.ABBR_NM = userDataModel.username;
            updateUser.FULL_NM = (userDataModel.firstName + " " + userDataModel.lastName);
            //Save the updated Data to the database. 
            db.SaveChanges();

我的问题是,一旦完成,我似乎无法再次访问用户数据。我想调用我的数据库并使用模型中的userDataModel.partyId。 (在我的业务层中的服务中。)

public List<WizardProgModel> FetchTable()
{
    return db.WIZARD_PRGRSS.Where(x => x.PARTY_ID == userDataModel.partyId);
}

我可能在这里丢失了一些愚蠢的东西但是我不应该在应用程序运行时引用我在模型中指定的任何内容吗?到目前为止,一切都是服务器端,所以View不应该在这一点上发挥作用。

谢谢。

1 个答案:

答案 0 :(得分:1)

您不需要声明模型以将其保存为新的数据库实体,只需直接使用您方法中的参数,然后在服务中只需从数据库中获取实体。如果你需要它作为服务中的模型,就像这样:

var userModel = db.PARTies.FirstOrDefault(x => x.ABBR_NM == username).Select(e => new  = UserDataModel {
username = username,
firstName = firstName,
lastName = lastName,
emailAddress = emailAddress,
phoneNumber = phoneNumber
});

让您的阅读方法接受参与方ID作为参数,如果您将其提供给服务我无法告诉您,因为我根本没有您的应用/解决方案的范围。< / p>

public List<WizardProgModel> FetchTable(int partyId)
{
    return db.WIZARD_PRGRSS.Where(x => x.PARTY_ID == partyId);
}