Ich schreibe eine ASP.net MVC3-Anwendung mit Entity Framework Code First und SqlCe4.
Ich habe mehrere Modelle entworfen und eines gefunden, das sich als interessant erweist. Das ist, was ich bis jetzt habe:
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; }
}
Ich benötige jedoch eine eindeutige Einschränkung oder einen Index, da ich möchte, dass ein bestimmter Schüler eine Liste von Vorlieben hat, aber die PresentationId muss für jeden Schüler eindeutig sein. Gibt es eine Möglichkeit, dies über Code First oder ein Validierungsattribut zu erreichen?
Das hört sich so an, als würde ich den Zweig einer Viele-zu-Viele-Beziehung mit dem Preference-Objekt als Vermittler beschreiten, um die Eigenschaft Rank hinzuzufügen. Ich kann jedoch nicht finden, wie ich sicherstellen kann, dass die Werte eindeutig sind. Ist es wirklich der beste Weg, manuell einen eindeutigen Index zur Datenbank außerhalb von EF hinzuzufügen?