Когда я выполнить код, приведенный ниже, в адресе на Mapper.Map
линии это нормально у меня есть правильные значения, поступающие от модели, но customer.Address
, в ISet
коллекции, не обновляется на session.Save(customer)
линии , Должно быть обновлено с address
является ссылкой.Update запись с AutoMapper, запись както LINQ
public ActionResult SaveAddressInvoice(CustomerAddressForView model)
{
var tx = session.BeginTransaction();
var customer = session.Get<Customer>(customerId);
var address = customer.Address.Where(x => x.Id == myAddressId).First<CustomerAddress>();
address = Mapper.Map<CustomerAddressForView, CustomerAddress>(model);
session.Save(customer);
tx.Commit();
}
Если я:
var address = customer.Address.Where(x => x.Id == myAddressId).First<CustomerAddress>();
address.Street = "MyStreet";
Я вижу запись изменилась в коллекции.
Отображение конфигурации:
Mapper.CreateMap<CustomerAddressForView, CustomerAddress>()
.ForMember(x => x.Id, opt => opt.Ignore());
Любая идея?
Update 1
public class Customer
{
public virtual int Id { get; set; }
public virtual string LastName { get; set; }
public virtual Iesi.Collections.Generic.ISet<CustomerAddress> Address { get; set; }
public Customer()
{
Address = new Iesi.Collections.Generic.HashedSet<CustomerAddress>();
}
}
public class CustomerAddress
{
public virtual int Id { get; set; }
public virtual string Street { get; set; }
public virtual Customer Customer { get; set; }
}
Что случилось с этим: 'вар адрес = customer.Address.Single (х => x.Id == myAddressId); '? – gdoron
Возможно, вам потребуется включить соответствующие части классов «CustomerAddressForView» и «CustomerAddress». – R0MANARMY
@gdoron ничего, я получаю правильное значение из коллекции. Когда я обновляю значение, полученное с помощью Automapper, коллекция не обновляется. Когда я обновляю поле значения get из коллекции, коллекция обновляется –