2012-03-06 17 views
6

Sto sviluppando l'app basata su Entity Framework. Sto usando un approccio model-first. Mi piacerebbe gestire i problemi di concorrenza. Come scritto in molti articoli, lo farò girando la modalità ConcurrencyMode su un campo che è un timestamp. Al momento sto affrontando il problema - Non posso aggiungere campo (colonna) di tipo timestamp. Come posso farlo nel modello?Entity Framework model first timestamp

Come scritto qui:

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

ho provato installiing Entity Database Designer Generation Power Pack, ma ancora non vedo alcuna possibilità di avere il timestamp generato dal modello (ho anche provato a fissare manualmente nel file edmx, ma ancora non sto ricevendo timestamp fcolumn nel database generato).

Per favore aiuto.

risposta

2

Penso che il tipo di database indichi l'ora in un tipo di proprietà binaria in EF.

La colonna timestamp del mio modello è di tipo binario con lunghezza 8, lunghezza fissa true, StoreGenratedPattern è calcolato.

EDIT: In realtà non è possibile senza cambiare il modello t4 come spiegato qui: Entity Framework timestamp Generate Database issue

0

EF 6.1, ho questo:

public partial class DepartmentEFEntity 
{ 

    Guid DepartmentUUID { get; set; } 

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

e poi:

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

Quando ho scritto fuori dal tavolo, ho capito:

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