从编辑操作(ViewModel)更新2个表。

时间:2016-12-13 13:23:56

标签: sql-server entity-framework model-view-controller

我首先想说对不起,因为我是这种编程语言的新手,所以如果我说或做错了,请原谅我。

我创建了一个包含3个类库的项目(其中1个包含来自sql server的表)。我根据以下教程创建了一个ViewModel:" http://tutlane.com/tutorial/aspnet-mvc/how-to-use-viewmodel-in-asp-net-mvc-with-example",现在我希望能够更新这些表中的数据,但我不知道如何。我尝试做某事但失败了。 `namespace BOL2.ViewModel {     公共课NIRIO     {         [键]         public int ID {get;组; }         public int Number {get;组; }         public Nullable Date {get;组; }

    public int NirID { get; set; }
    [DisplayName("TypeID")]
    public int TipID { get; set; }
    public int SupplierID { get; set; }
    public int ProductID { get; set; }
    public Nullable<System.DateTime> EntryDate { get; set; }
    public Nullable<System.DateTime> ExitDate { get; set; }
    public int Quantity { get; set; }
    public decimal Price { get; set; }
    public decimal Total { get; set; }


    public BOL2.tbl_NIR tbnir;
    public BOL2.tbl_I_O tblio { get; set; }`

这是我的ViewModel。它包含来自这两个表的数据(tbl_NIR,前3个,以及来自tbl_I_O的其他表。我在研究中看到他们有一个存储库类,但是如果我应该为viewmodel做另一个类,或者我现在不做我可以使用我已经拥有的2吗?非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

You could do something similar to this.
public void UpdateCar(CarViewModel viewModel)
{
    using (DataContext context = new DataContext())
    {
        CarEntity dataModel = context.CarEntities.where(x => x.Id == viewModel.Id).First();

        dataModel.Name = viewModel.Name;
        dataModel.Type = viewModel.Type;

        context.SaveChanges();
    }
}

You need to create your model objects from your view model and set the values for the models.

答案 1 :(得分:0)

我不太确定你使用的方法是什么,但是没有用。如果您尝试通过视图更新表,则无法执行此操作。因为你加入了 inform IT explanation 我建议您在数据库中创建存储过程。然后通过代码调用该过程。它安全快速。 explained here