Ich versuche, eine Datenbank mit der context.AddOrUpdate
-Methode zu seeden, aber das Problem ist, dass ich die eingefügten Daten basierend auf einem mehrspaltigen Index einzigartig machen muss.Entity Framework - Seed AddOrUpdate mit mehrspaltigem Index als Bezeichner
[Table("climbing_grades")]
public class ClimbingGrade : EntityBase
{
/// <summary>
/// The name of the climbing grade, e.g.: 7a, VII, etc.
/// </summary>
[Index("IX_Name_GradeType", 1, IsUnique = true)]
public string Name { get; set; }
/// <summary>
/// Tries to display the average difficulty of the described grade.
/// Matching the different grades can be difficult because its always
/// a subjective rating and there exists no norm on converting grades.
/// </summary>
public double Difficulty { get; set; }
/// <summary>
/// The type of the grade. Will be the respective region rating.
/// e.g.: UUIA for most oft europe, YSD for USA, etc.
/// </summary>
[Index("IX_Name_GradeType", 2, IsUnique = true)]
public ClimbingGradeType GradeType { get; set; }
}
Derzeit AddOrUpdate
ich auf der Name
der Kletter Klasse basiert, aber jetzt bin ich an einem Punkt, wo ich doppelte Namen einfügen müssen.
context.ClimbingGrades.AddOrUpdate(grade => /* Compare multi column index here?*/,
new ClimbingGrade
{
Name = "5a",
Difficulty = 4.75,
GradeType = ClimbingGradeType.FontainebleauBloc
},
new ClimbingGrade
{
Name = "5a",
Difficulty = 4.25,
GradeType = ClimbingGradeType.FontainebleauTraverse
});
Ist es möglich, Multi-Spalten-Indizes zu vergleichen, wenn ich Seed-Daten einfüge?
Was meinst du mit "ist es möglich zu vergleichen ...?" Was willst du genau machen? Möchten Sie nur einige der möglichen wiederholten Werte beibehalten? – JotaBe
Ich möchte den mehrspaltigen Index als Referenz verwenden, wenn der Datensatz bereits in der Datenbank vorhanden ist. z. B .: '.AddOrUpdate (Note => grade.Name == existing.Name && grade.GradeType == existing.GradeType)' – Silthus