实体框架中的映射

时间:2016-07-11 13:26:09

标签: c# entity-framework

我有一个像这样的现有数据库架构(无法改变它......)。我需要做一个EF映射

Student表:

ID    Name     CourseID
------------------------
 1    Name1     100023
 2    Name2     100023
 3    Name3     100024  
 4    Name4     NULL  

Course表:

ID   CourseID   CourseName
--------------------------
 1   100023      Course1  
 2   100022      Course2  
 3   100024      Course3  
 4   100023      Course1  

ID是两个表中的主键。 CourseID是关系的列。

数据库(SQL Server)中也没有明确的关系。

当我尝试通过将CourseID指定为执行映射所需的键来在EF中进行映射时,会抛出一个错误,告知它未被定义为键属性。我无法将其添加为Key属性,因为它是一个可以为空的字段。

有什么方法可以做这个映射吗?

1 个答案:

答案 0 :(得分:0)

这是一个非常粗略的架构。但是,您可以使用public class Course { [Key, Column(Order = 0)] public int ID { get; set; } [Key, Column(Order = 1)] public int? CourseID { get; set; } public string CourseName { get; set; } } public class Student { [Key] public int ID { get; set; } public string Name { get; set; } public int? CourseID { get; set; } [ForeignKey("CourseID")] public Course Course { get; set; } } 表的复合键。我还没有测试过,但这样的事情应该可行。

store._metadataFor