У меня есть такая модель, как
public class MyEntity
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Required]
public int Id { get; set; } // Id
[Required]
[Key]
public System.Guid GUID { get; set; }
}
Свойством GUID является PK по своему дизайну, но у меня есть свойство Id, сгенерированное в БД, которое я использую в своем коде, чтобы определить, является ли объект новым объектом, который еще не был сохранен.
Когда я сохраняю этот объект в Entity Framework, свойство Id не заполняется снова, как это обычно происходит для свойств, генерируемых базой данных (хотя обычно это ключи). Я должен запросить БД для объекта и получить идентификатор вручную. Кажется, что EF только заполняет ключевые свойства в SaveChanges.
Есть ли способ заставить EF автоматически заполнять здесь свойство Id? Установка его в качестве ключа не является вариантом, у меня есть десятки таблиц, которые FK'd для свойства GUID и по уважительной причине.
РЕДАКТИРОВАТЬ: я обнаружил, что пакет https://entityframework-extensions.net/ обрабатывает мои изменения сохранения. Если я использую стандартные EF savechanges, это работает, но не с версией расширений.