1
[HttpPost]
public ActionResult _EditCustomer(CustomerViewModel CustomerViewModel)
{
    if (ModelState.IsValid)
    {
        try
        {
            Customers customer = entity.Customers.FirstOrDefault(x => x.sno == CustomerViewModel.sno);
            customer = AutoMapper.Mapper.Map<CustomerViewModel, Customers>(CustomerViewModel);
            entity.SaveChanges();

            return Content("<div class=\"success\">Müşteri düzenleme işlemi başarılı.</div>", "text/html");
        }
        catch (Exception e)
        {
            ModelState.AddModelError("", "Müşteri güncelleme hatası.");
        }
    }

    //Updating customer is failed!
    CustomerViewModel.Cities = entity.Cities;
    CustomerViewModel.PowerSuppliers = entity.PowerSuppliers;
    CustomerViewModel.Sectors = entity.Sectors;

    return PartialView(CustomerViewModel);
}

私はコードをデバッグし、実行時に顧客が更新しています (オートマッパーは動作しており、変更を確認できます) が、entity.SaveChanges();動作していません。

automapper を使用している場合、レコードを更新する別の方法はありますか?

前もって感謝します。

4

1 に答える 1

1

コードは、コンテキストに関連付けられていない新しい顧客エンティティを作成します。

var newCustomer = Mapper.Map<CustomerViewModel, Customers>(CustomerViewModel);

既存のエンティティを更新するにMapは、automapper の次のメソッドを使用します。

Mapper.Map(CustomerViewModel, customer);
于 2012-11-27T09:04:59.307 に答える