Я не совсем понимаю EF, поэтому, пожалуйста, медведь со мной, когда я пытаюсь пробиться сквозь мое невежество и замешательство. У меня есть одно ограничение, я не могу изменить структуру базы данных.EF6 Code First Entity с коллекцией свойств навигации того же типа - как я могу сказать EF, какова связь?
TBLGRADES
GRADEID GUID (PK) | GRADETITLE VARCHAR
--------------------------------------------------------------
882349d4-2564-4160-a034-2a5116dec389 | Cool Grade
59539804-5c47-46ac-873d-65b33ce6ac94 | Not so cool grade
b00d6cdd-3273-4f83-8d18-0c9e9a3e1562 | Lame Grade
TBLGRADESRELATIONSHIPS
GRADEID GUID (FK) | ELIGIBLEGRADEID GUID (FK)
----------------------------------------------------------------------------
882349d4-2564-4160-a034-2a5116dec389 | 59539804-5c47-46ac-873d-65b33ce6ac94
882349d4-2564-4160-a034-2a5116dec389 | b00d6cdd-3273-4f83-8d18-0c9e9a3e1562
Я хотел бы это представлено с использованием кода EF первый и я изо всех сил, как я не понимаю, как EF работает, но я могу заставить его работать с использованием генерации кода EF. Если я не могу заставить его работать с использованием кода вначале, тогда мне просто нужно согласиться на генерацию кода EF. Надеюсь, кто-то может очистить облака в моей голове.
ЛИЦО
[Table("TBLGRADES")]
public class Grade
{
public GUID GradeId { get; set; }
public string GradeTitle { get; set; }
public virtual ICollection<Grade> EligibleGrades { get; set; }
}
Я бы так же, как экземпляр объекта Grade, представляющего Классный Grade, чтобы иметь коллекцию Grade сущностей (EligibleGrades) (количество: 2) с 1 экземпляра не так прохладного класса и 1 экземпляр хромовой оценки согласно TBLGRADESRELATIONSATIONS.
var grade = rep.GetGradeByID(Guid.Parse("882349d4-2564-4160-a034-2a5116dec389"));
grade.EligibleGrades[0] //Not so cool grade
grade.EligibleGrades[1] //lame grade
Пожалуйста, помогите мне понять ассоциации, чтобы я мог получить эту работу. Ценить это. Моя первая публикация SO, пожалуйста, будьте осторожны.
Это абсолютно идеально! Что касается параметра WithMany() без параметров, я предполагаю, что если мне нужно пройти по графику, чтобы узнать, к каким классам относится текущий класс, мне нужно будет его настроить? Или я понимаю это неправильно? – user3215462
@ user3215462: Да, тогда вы бы использовали '.WithMany (g => g.GradesThisIsAnEligibleGradeFor)'. – Slauma
Спасибо за помощь. Все получилось идеально – user3215462