Спасибо, все работает нормально, но жду официального решения от EF Team
я есть объект, который имеет объект значения, и этот объект значения имеет другой объект значения. Моя проблема заключается в том, что при обновлении сущности вместе с объектами значения сущность с родительским объектом значения обновляется, а дочерний объект значения - нет. обратите внимание, я использовал последнюю версию Entity Framework Core 2.1.0-rc1-final, это родительский объект Employee
public class Employee : Entity
{
public string FirstName { get; private set; }
public string LastName { get; private set; }
public string Email { get; private set; }
public Address Address { get; private set; }
}
и это адрес объекта родительского значения
public class Address : ValueObject<Address>
{
private Address() { }
public Address(string street, string city, string state, string country, string zipcode, GeoLocation geoLocation)
{
Street = street;
City = city;
State = state;
Country = country;
ZipCode = zipcode;
GeoLocation = geoLocation;
}
public string Street { get; private set; }
public string City { get; private set; }
public string State { get; private set; }
public string Country { get; private set; }
public string ZipCode { get; private set; }
public GeoLocation GeoLocation { get; private set; }
}
и это дочерний объект значения GeoLocation
public class GeoLocation
{
private GeoLocation()
{
}
public GeoLocation(decimal longitude, decimal latitude)
{
Latitude = latitude;
Longitude = longitude;
}
public Decimal Longitude { get; private set; }
public Decimal Latitude { get; private set; }
}
и при обновлении сотрудника я сначала получаю его из базы данных, затем изменяю свойство Address, используя новое значение, полученное из пользовательского интерфейса
var employee = _repository.GetEmployee(empId);
employee.SetAddress(newAddress);
и метод SetAddress
public void SetAddress(Address address)
{
Guard.AssertArgumentNotNull(address, nameof(address));
Address = address;
}