C# 通过更改跟踪器获取更改属性的名称
这就是我所拥有的:C# 通过更改跟踪器获取更改属性的名称,c#,entity-framework,asp.net-core,entity-framework-core,C#,Entity Framework,Asp.net Core,Entity Framework Core,这就是我所拥有的: var book = myContext.Books.Where(x =>x.ID = bookID).FirstOrDefault(); book.name = "New book name"; myContext.Update(book); if (myContext.Entry(book).State == EntityState.Modified) { foreach(var entry in myContext.ChangeTrac
var book = myContext.Books.Where(x =>x.ID = bookID).FirstOrDefault();
book.name = "New book name";
myContext.Update(book);
if (myContext.Entry(book).State == EntityState.Modified) {
foreach(var entry in myContext.ChangeTracker.Entries()) {
Console.WriteLine("Entity: {0}, State: {1} ", entry.Entity.GetType()., entry.State.ToString());
}
myContext.SaveChanges();
我需要知道更改的属性的名称(name)。有可能吗?是的,当然有可能,你是这样做的:
var modified = entry.Properties.Where(p=>p.IsModified);
foreach( var prop in modified )
{
var name = prop.Metadata.Name;
}