Estoy escribiendo una aplicación ASP.NET MVC3 utilizando Entity Framework Code First y SqlCe4.Restricción exclusiva con EFCodeFirst y SqlCe4
He estado diseñando varios modelos, y encontré uno que está resultando ser interesante. Esto es lo que tengo hasta ahora:
public class Preference
{
public int PreferenceId { get; set; }
[Required]
public int StudentId { get; set; }
public virtual Student Student { get; set; }
[Required]
public int PresentationId { get; set; }
public virtual Presentation Presentation { get; set; }
[Required]
public int Rank { get; set; }
}
que sin embargo, necesitan una restricción única o un índice, ya que para un estudiante en particular, quiero que tiene que tener una lista de preferencias, pero la PresentationId debe ser único para cada estudiante ¿Hay alguna forma de hacerlo mediante Code First o algún atributo de validación?
Esto suena como que voy por la rama de una relación de muchos a muchos con el objeto de preferencia que es un intermediario, para agregar la propiedad de rango. Sin embargo, parece que no puedo encontrar la manera de asegurarme de que los valores sean únicos. ¿Es la mejor manera de agregar manualmente un índice único a la base de datos fuera de EF?
momento yo estaba usando el construido en el inicializador: 'Database.SetInitializer <> (StudentRegistrationContext nuevos DropCreateDatabaseIfModelChanges <> StudentRegistrationContext());' Sin embargo, al tratar de implementar su solución, que falla al compilar en la línea que contiene ModelMatchesDatabase() – mandreko
Esta respuesta funcionó para mí y actualmente está en mi versión de producción – Yablargo