Чтобы обновить сущность, она должна отслеживаться сущностью, в приведенном ниже коде вы создаете новый объект:
var subscription = new Subscription()
{
ID = ID,
Active = Active,
Plan = Plan,
Periodicity = Convert.ToString(EnumPeriodicityValue),
Price = Price,
LocationTargets = LocationTargets,
PaymentStatus = Convert.ToString(EnumPaymentStatus),
OperationType = Convert.ToString(OperationTypeValue),
UpdatedAt = DateTime.UtcNow
};
Сначала вам нужно получить эту сущность из БД, а затем обновить связаннуюполя и сохранить в БД;
[ОБНОВЛЕНИЕ]
Действительность - это связанный объект с подпиской, поэтому вам необходим запрос включения для извлечения объекта из БД, затем вы можете обновить и сохранить.
var subscription = _db.Set<Subscription>().Single(x=>x.ID == ID).Include(x=>x.Validity);
subscription.Validity.StartDate = startDate;
subscription.Vaklidity.EndDate = endDate;
_db.SaveChanges();
[ОБНОВЛЕНИЕ]
добавить атрибуты Foreignkey, затем создать новую миграцию и обновить базу данных:
public class Validity : ValueObject
{
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public string SubscriptionID { get; set; }
public Subscription Subscription { get; set; }
// ...
}
public class Subscription: BaseEntity
{
public string ValidityID { get; set; }
public Validity Validity { get; set; }
// ...
}
После обновления базы данных получить соответствующую достоверностьи обновите его:
var validity = _db.Set<Validity>().Find(x => x.SubscriptionID == ID);
validity.StartDate = startDate;
validity.EndDate = endDate;
_db.SaveChanges();