【发布时间】:2014-01-20 15:02:57
【问题描述】:
我不太了解 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; }
}
我想要一个代表 Cool Grade 的 Grade 实体实例,拥有一组 Grade 实体 (EligibleGrades)(计数:2),其中包含 1 个不太酷的成绩实例和 1 个蹩脚成绩实例,根据 TBLGRADESRELATIONSHIPS。
var grade = rep.GetGradeByID(Guid.Parse("882349d4-2564-4160-a034-2a5116dec389"));
grade.EligibleGrades[0] //Not so cool grade
grade.EligibleGrades[1] //lame grade
请帮助我了解关联,以便我可以正常工作。欣赏它。我的第一个 SO 帖子,所以请温柔。
【问题讨论】:
标签: c# entity-framework entity-framework-6 relationships navigation-properties