tôi đang cố gắng để gieo rắc một cơ sở dữ liệu bằng cách sử dụng phương pháp context.AddOrUpdate
, nhưng vấn đề là tôi cần phải làm cho dữ liệu chèn độc đáo dựa trên một chỉ số cột đa.Entity Framework - Seed AddOrUpdate với chỉ số cột đa như nhận dạng
[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; }
}
Hiện nay tôi AddOrUpdate
dựa trên Name
của lớp leo núi, nhưng bây giờ tôi đang ở một điểm mà tôi cần phải chèn tên trùng lặp.
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
});
Có thể so sánh chỉ mục nhiều cột khi tôi chèn dữ liệu hạt giống không?
Ý của bạn là gì "có thể so sánh ...?" Bạn chính xác muốn làm gì? Bạn có muốn chỉ giữ một số giá trị lặp lại có thể không? – JotaBe
Tôi muốn sử dụng chỉ mục đa cột làm tham chiếu nếu tập dữ liệu đã tồn tại trong cơ sở dữ liệu. ví dụ: '.AddOrUpdate (cấp => cấp.Name == hiện tại.Name && grade.GradeType == existing.GradeType)' – Silthus