我正在使用" CodeFirst现有数据库"并从mycontext类引入了一个存储过程,看起来不错,但我映射到的实体有一个复杂的类型。
MyContext
public virtual List<Student> Get_AllStudents(int year, string classes, string indicators) {
StringBuilder spCommand = new StringBuilder();// = "CALL Get_AllStudents(";
//params object[] parameters;
MySqlParameter[] mySqlParams = new MySqlParameter[]{new MySqlParameter("yearId", year),
new MySqlParameter("classIds", classes),
new MySqlParameter("indicatorList", indicators)};
spCommand.Append("CALL Get_AllStudents(@yearId,@classIds,@indicatorList);");
return this.Database.SqlQuery<Student>(spCommand.ToString(), mySqlParams).ToList<Student>();
}
我的查询是
select s.firstname, s.surname,s.IndicatorID from students s
where ClassId in (classIds)
and yearId = yearId
and indicatorId in (indicatorList);
我的学生实体有一个复杂的类型&#34;名称&#34;
public class Student
{
public int studentID { get; set; }
public string studentCode { get; set; }
public Name name { get; set; }
public Nullable<System.DateTime> birthdate { get; set; }
}
public class Name {
[Column("surname")]
public string surname { get; set; }
[Column("middlename")]
public string middlename { get; set; }
[Column("firstname")]
public string firstname { get; set; }
[Column("preferredname")]
public string preferredname { get; set; }
}
如何告诉实体框架将s.firstname和s.surname映射到Student.Name.firstname和Student.Name.surname属性
我没有使用导入功能(因为它给了我一些我不想处理的愚蠢错误&#34;您的项目引用了最新版本的EntityFramework但是找不到与此版本兼容的EF数据提供程序...& #34;)我可以在mycontext类中更改某些sp设置以期望复杂类型吗?
错误 无法为财产创造价值&#39; name&#39;类型&#39; DbContexts.Name&#39;。 仅支持原始类型或枚举类型的属性。