Я использую EF Core 2.2.4
У меня есть следующий субъект
public partial class Person: IBaseEntity
{
[Key]
public int PersonID{ get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public DateTime CreatedDateTime { get; set; }
public DateTime ModifiedDateTime { get; set; }
public byte[] VersionStamp { get; set; }
}
Тогда в сервисном методе я изменяю только определенные свойства Entity
public async Tak Update()
{
var p= new Person();
task.FirstName = "Foo";
_dbContext.Attach<Person>(p);
_dbContext.SaveChanges();
}
Если я не ошибаюсь, метод Attach используется, когда сущность не отслеживается, и вы хотите изменить только определенные свойства.
Однако приведенный выше код ничего не делает. Когда я запускаю SqlProfiler, я не вижу, чтобы какой-либо sql выполнялся в SaveChanges ()
Нужно ли явно указывать EF, что свойство изменено? Что-то вроде
_dbContext.Entry<Person>(p).Property(p => p.FirstName).IsModified = true;