2012-03-06 20 views
6

Estoy desarrollando la aplicación basada en Entity Framework. Estoy usando el enfoque de modelo primero. Me gustaría manejar los problemas de concurrencia. Como está escrito en muchos artículos, voy a hacerlo al convertir el modo ConcurrencyMode en fijo en un campo que es una marca de tiempo. En este momento estoy enfrentando el problema: no puedo agregar el campo (columna) del tipo timestamp. ¿Cómo puedo hacerlo en el modelo?Modelo de marco de la entidad primera marca de tiempo

Como está escrito aquí:

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

Probé installiing Entidad de base de datos Diseñador Generación Power Pack, pero todavía no veo ninguna posibilidad de tener la marca de tiempo generados por el modelo (incluso he intentado fijar manualmente en el archivo edmx, pero todavía no estoy recibiendo la marca de fecha y hora en la base de datos generada).

Por favor ayuda.

Respuesta

2

Creo que la marca de tiempo del tipo de base de datos se asigna a un tipo de propiedad binaria en EF.

La columna de marca de tiempo de mi modelo es de tipo Binario con longitud 8, longitud fija verdadera, StoreGenratedPattern se calcula.

EDIT: En realidad no es posible sin cambiar la plantilla de T4 como se explica aquí: Entity Framework timestamp Generate Database issue

0

EF 6.1, tengo esto:

public partial class DepartmentEFEntity 
{ 

    Guid DepartmentUUID { get; set; } 

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

y luego:

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

Cuando la escritura fuera de la mesa, entiendo esto:

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