6

Entity Framework ベースのアプリを開発しています。モデルファーストのアプローチを使用しています。並行性の問題を処理したいと思います。多くの記事に書かれているように、タイムスタンプであるフィールドで ConcurrencyMode を固定にすることでそれを行います。現時点では、問題に直面しています - タイムスタンプ型のフィールド (列) を追加できません。モデルでそれを行うにはどうすればよいですか?

ここに書かれているように:

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

Entity Designer Database Generation Power Pack をインストールしようとしましたが、モデルからタイムスタンプを生成する可能性はまだありません (edmx ファイルで手動で設定しようとしましたが、生成されたデータベースでタイムスタンプ fcolumn を受信して​​いません)。

助けてください。

4

2 に答える 2

2

データベース型のタイムスタンプは、EF の Binary プロパティ型にマップされると思います。

私のモデルのタイムスタンプ列は、長さ 8、固定長 true、StoreGenratedPattern の Binary 型です。

編集: ここで説明されているように、t4 テンプレートを変更しないと実際には不可能です: Entity Framework タイムスタンプ データベースの問題の生成

于 2012-04-10T02:14:31.987 に答える
0

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
    )
于 2013-12-04T19:30:34.723 に答える