Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Entitty Framework 4 - Concurrecy Field - Bug  [new]
Sysobjects
Member

Откуда: Новосибирск
Сообщений: 163
Здравствуйте.
Такой вопрос:
есть модель - у некоей сущности есть колонка timestamp для проверки параллелизма. Сущность обрабатывается клиентом в виде STE.

В чем трюк:
поставив у сущности в модели полю timestamp значение Conceurrency Mode = fixed, созданная клиентом сущность в состоянии Added (проверено ее состояние в контексте сразу перед SaveChanges) уходит так:

exec sp_executesql N'declare @p int
update [dbo].[Categories]
set @p = 0
where (([Id] = @0) and [timestamp] is null)
select [timestamp]
from [dbo].[Categories]
where @@ROWCOUNT > 0 and [Id] = @0',N'@0 uniqueidentifier',@0='87105EE8-BDA2-40D6-BF19-6BD748A3AE6E'



Если же поставить Concerrency Mode = None, то все в порядке: уходит команда вставки.
exec sp_executesql N'insert [dbo].[Categories]([Id], [Name], [CategoryLevel], [Keywords], [Comment], [Deleted], [CreateDate], [CreateUser], [LastUpdateDate], [LastUpdateUser], [ParentCategory_Id])
values (@0, @1, @2, @3, @4, null, null, null, null, null, @5)
select [timestamp]
from [dbo].[Categories]
where @@ROWCOUNT > 0 and [Id] = @0',N'@0 uniqueidentifier,@1 nvarchar(max) ,@2 int,@3 nvarchar(max) ,@4 nvarchar(max) ,@5 uniqueidentifier',@0='F08E3FD8-4AD8-485C-B4EE-8D28CB0B7A15',@1=N'KLLKLKLKL0000',@2=3,@3=N'hjkhkjhjkhjk',@4=N'hjkhkjhjkjhjk',@5='87105EE8-BDA2-40D6-BF19-6BD748A3AE6E'

В чем дело?


>>Не грози Владимирскому Централу, попивая виски у себя в Лондоне
30 июн 10, 12:59    [9023908]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить