Класс сущности выглядит следующим образом:
Код: Выделить всё
public class MyEntity
{
public int Id { get; set; }
public string MyProperty { get; set; }
}
Обратите внимание, что я не могу используйте такое решение:
Код: Выделить всё
var myEntities = context.Set()
.Select(e => new MyEntity
{
Id = e.Id,
// Exclude MyProperty
});
Для старых атрибутов ORM [ReadOnly] я успешно доработал логику следующим образом:
Код: Выделить всё
propertyBuilder.Metadata.SetBeforeSaveBehavior(PropertySaveBehavior.Ignore); // Avoids inserting the property
propertyBuilder.Metadata.SetAfterSaveBehavior(PropertySaveBehavior.Ignore); // Avoids updating the property
Код: Выделить всё
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity()
.Ignore(e => e.MyProperty);
}
Код: Выделить всё
public override int SaveChanges()
{
foreach (var entry in ChangeTracker.Entries())
{
if (entry.State == EntityState.Added || entry.State == EntityState.Modified)
{
entry.Property(nameof(MyEntity.MyProperty)).IsModified = true;
}
}
return base.SaveChanges();
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... y-framewor
Мобильная версия