Я использую сущность Entity Framework 4.0 POCO. Я сопоставил пользовательскую хранимую процедуру со вставкой PROCEDURE [dbo]. [Usp_MyTable_Insert] (@ Value1 char (1), @ Value2 varchar (5), @ Value3 varchar (20) ....) КАК НАЧИНАЕТСЯ ВСТАВИТЬ СДЕЛКУ В «dbo». «MyTable» («Value1», «Value2», «Value3») ЗНАЧЕНИЯ (@ Value1, @ Value2, @ Value3)
DECLARE @Id int --Получить последний идентификатор.SET @Id = (SELECT CAST (@@ IDENTITY AS INT))
- обновить таблицу с некоторыми значениями UPDATE "dbo". "MyTable" SET Value3 = (ВЫБРАТЬ SomeTableColumn ОТ SomeTable, ГДЕ Something = Something) WHERE [Id] = @Id
СДЕЛКА СОВЕРШЕНИЯ
SELECT @Id AS "Id"
END
Это вставка объекта в базу данных, а затемобновление некоторых столбцов в базе данных с последующим возвращением идентификатораВсе довольно просто.
public int InsertRecord (RecEntity recEntity) {context.AddObject ("RecEntities", recEntity);
context.SaveChanges();
return recEntity.Id;
}
Метод вставки метода работает хорошо.Затем мне нужно обновить текущий объект со значениями, которые вставлены хранимой процедуры.У меня есть метод в моем хранилище, чтобы получить данные
public RecEntity SingleRecEntity (Expression> where) {return context.RecEntities.Single (where);} Когда я вызываю этот метод, значения, вставленные хранимой процедурой, не приходят к сущности.
id = repository.InsertRecord (recEntity);recEntity = repository.SingleBrokerPreRegistration (x => x.Id == id);// новые значения не пришли сюда из базы данных
Я запускаю запрос, сгенерированный структурой сущностей, в анализаторе запросов, он возвращает все актуальные значения.Но по какой-то причине datacontext не хочет обновлять эту сущность.
Вероятно, должны быть какие-то способы изменить это.Может быть, кто-то может объяснить это поведение.Нужна помощь.