2012-07-02 19 views
10

yo estaba tratando de mover mi proyecto MVC 3 a 4 MVC pero cuando quería mover este modelo:`DatabaseGenerated (DatabaseGeneratedOption.Identity)` no funciona en MVC 4

public class Link 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid ID { get; set; } 

    [DisplayName("Shorted URL")] 
    public string SURL { get; set; } 

    [DisplayName("General Link")] 
    public string OriginalURL { get; set; } 

    [DisplayName("Click Count")] 
    public int ClickCount { get; set; } 
} 

public class LinkDBContext : DbContext 
{ 
    public DbSet<Link> Links { get; set; } 
} 

llegué error con el atributo [System.ComponentModel.DataAnnotations.(DatabaseGeneratedOption.Identity)]. No sé cuál es el problema. ¿¡¿Alguien sabe?!?

actualización

Estos son los errores:

El tipo o espacio de nombres 'DatabaseGeneratedAttribute' no se pudo encontrado (¿falta una directiva using o una referencia de ensamblado?)

No se ha encontrado el tipo o el nombre de espacio de nombres 'DatabaseGenerated' (es ¿falta una directiva using o una referencia de ensamblado?)

+5

En primer lugar, el problema no está relacionado con MVC (3 o 4), ya que su código trata con Entity Framework. Segundo, no dices qué versión de EF estás usando y no dices qué error recibiste. Como mis poderes psíquicos no funcionan hoy, deberás intentar ser más específico. –

+0

@MystereMan Acabo de crear una aplicación de Internet utilizando VS2012 y tiene EF en sí. ¡No sé qué versión es! –

+1

Si puede incluir el mensaje de error real en la pregunta que sería útil. – Satish

Respuesta

24

DatabaseGeneratedAttribute está en el espacio de nombres de atributos System.ComponentModel.DataAnnotations.Schema en .NET 4.5

+0

FWI: necesita tener System.ComponentModel.DataAnnotations al que se hace referencia en su proyecto – cpoDesign

+0

me ayudó también thanx – sibonile

2

Si desea utilizar este atributo en .NET 4 se puede utilizar ADO.NET Entity Framework versión preliminar de 6 (o incluso versiones compiladas) para hacer esto, en la ventana Manage NuGet Pakages, en el menú desplegable en la parte superior de la ventana, seleccione Include Prerelease.

Para actualizar a Nightly Builds, en Pakage Manager Settings agregar este paquete Fuente:

http://www.myget.org/F/aspnetwebstacknightly/ 

Para una guía completa, ver EF on GitHub.

1

Es necesario - en algunos casos - para cambiar el marco de un 4,5 o menos a 4.5.1 y luego instalar Entity Framework 6 + y se encontrará

+0

¡Gracias! Esto funcionó para mí, aunque no necesité instalar EF6 porque ya tenía una versión de EF en mi proyecto. – mkimmet

Cuestiones relacionadas