Модель фреймворка Entity первой отметки времени - PullRequest
6 голосов
/ 06 марта 2012

Я занимаюсь разработкой приложения на основе Entity Framework. Я использую модель сначала. Я хотел бы решить проблемы параллелизма. Как написано во многих статьях, я собираюсь сделать это, превратив ConcurrencyMode в фиксированное поле, которое является временной меткой. В данный момент я сталкиваюсь с проблемой - я не могу добавить поле (столбец) типа timestamp. Как я могу сделать это в модели?

Как написано здесь:

http://social.msdn.microsoft.com/Forums/is/adodotnetentityframework/thread/1ed8d1e4-9d78-4593-9b10-33e033837af8\

Я пытался установить Power Pack Generation Database Pack для Entity Designer, но все же не вижу возможности сгенерировать временную метку из модели (я даже пытался установить ее вручную в файле edmx, но я все еще не получаю fcolumn временной метки в сгенерированной базе данных ).

Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 10 апреля 2012

Я думаю, что отметка времени типа базы данных соответствует типу двоичного свойства в EF.

Столбец метки времени моей модели имеет тип Binary с длиной 8, с фиксированной длиной true, StoreGenratedPattern вычисляется.

РЕДАКТИРОВАТЬ: На самом деле невозможно без изменения шаблона t4, как описано здесь: Entity Frameworkотметка времени Сгенерировать базу данных проблема

0 голосов
/ 04 декабря 2013

EF 6.1, у меня есть это:

public partial class DepartmentEFEntity
{

    Guid DepartmentUUID { get; set; }

    public byte[] TheVersionProperty { get; set; }
}

и затем:

        modelBuilder.Entity<DepartmentEFEntity>().Property(o => o.TheVersionProperty).HasColumnType("timestamp").HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed).IsRowVersion();

Когда я пишу сценарий, я получаю следующее:

CREATE TABLE [dbo].[Department](
    [DepartmentUUID] [uniqueidentifier] NOT NULL,
    [TheVersionProperty] [timestamp] NOT NULL
    )
...