У меня возникает проблема при использовании EF4, когда я пытаюсь проверить, находится ли объект уже в контексте Entity Framework.
У меня есть этот код ниже
var entityName = Entity4Test + Guid.NewGuid();
using( var ctx = new EnviroDataContext() )
{
var etc = new Entity
{
Name = entityName
};
ctx.Entity.AddObject( etc );
var q = from p in ctx.Entity
where p.Name == entityName
select p;
// Why 'q.ToList().Count == 0'?
ctx.SaveChanges();
}
Мой вопрос: почему мой поиск после вставки оказался пустым?
Я знаю, что данные сохраняются после «SaveChanges», но что, если мне нужно «запросить» данные моей памяти сущностей.
Расширение вопроса
У меня есть бизнес-правило, которое, добавляя 1 элемент A, запускает вставку других объектов B.
Проблема в том, что у меня есть правило проверки, что при вставке B, t уже должно существовать.
Поскольку все эти действия выполняются до 'SaveChanges', я получаю сообщение об ошибке, что EntityA не существует.
Другой случай , у меня есть уникальное поле Имя в таблице.
Если я пытаюсь запустить AddEntityName («bla») дважды, а затем «SaveChanges», я получаю исключение из БД [Уникальные ограничения], даже после прохождения проверки для вставки, которая гарантирует, что имя уникально.
У кого-нибудь есть идеи?