Спасибо, все работает нормально, но жду официального решения от 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;
}

Ответы на вопрос(1)

Ваш ответ на вопрос