Почему структура сущностей не реализует карту идентичности с единицей работы?
Я написал тестовый код, как показано ниже:
Entities db = new Entities();
var place = new Place
{
Id = Guid.NewGuid(),
Name = "test",
Address = "address"
};
db.Places.Add(place);
var cachedPlace = db.Places.Where(x => x.Id == place.Id).FirstOrDefault(); \\ null
Я ожидал, что dbset вернет добавленную сущность. Но это дает мне объект только после того, как изменения были сохранены в реальной БД.
1 ответ
Решение
Если вы хотите получить доступ к несохраненному запросу, используйте свойство Local объекта DbSet.
Причина, по которой он работает не так, как вы хотите, состоит в том, что он также должен поддерживать идентификаторы с автонумерацией, и это будет означать, что идентификатор равен 0. Если вы вставите несколько записей, у вас будет несколько объектов с одинаковым идентификатором 0. EF не будет знать, что такое настоящий идентификатор, пока он не будет сохранен.