Какой свободный метод API соответствует атрибуту [Timestamp] в API аннотаций данных для проверки параллелизма - PullRequest
12 голосов
/ 29 мая 2011

Я использую Entity Framework 4.1. Какой свободный метод API соответствует атрибуту [Timestamp] в API аннотаций данных для проверки параллелизма?

Ответы [ 2 ]

26 голосов
/ 29 мая 2011

Если у вас есть такой класс:

public class MyEntity
{
    ...
    public byte[] Timestamp { get; set; }
}

Вы будете использовать беглое отображение следующим образом:

modelBuilder.Entity<MyEntity>()
            .Property(e => e.Timestamp)
            .IsConcurrencyToken()
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);

Или:

modelBuilder.Entity<MyEntity>()
            .Property(e => e.Timestamp)
            .IsRowVersion();              
0 голосов
/ 18 сентября 2018

Вы можете использовать код, как описано Ладиславом Мрнкой, но

Есть небольшие различия между:

modelBuilder.Entity<MyEntity>()
            .Property(e => e.Timestamp)
            .IsConcurrencyToken()
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);

и

modelBuilder.Entity<MyEntity>()
            .Property(e => e.Timestamp)
            .IsRowVersion();   

секунда эквивалентна [Timestamp] атрибут, но сначала генерирует следующую миграцию, когда мы меняем '[Timestamp] `на первую версию свободного кода API:

    public override void Up()
    {
        AlterColumn("dbo.MyEntity", "Timestamp", c => c.Binary());
    }

    public override void Down()
    {
        AlterColumn("dbo.MyEntity", "Timestamp", c => c.Binary(nullable: false, fixedLength: true, timestamp: true, storeType: "rowversion"));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...