>我有学生和成绩表,有一对多的关系
Student
======
stud_id (pk)
stud_name
grade_id(fk)
Grade
=====
grade_id
grade_name
我的模型/实体类如下
Student
======
public int stud_id {get; set;}
public string stud_name {get; set;}
public int grade_id(fk) {get; set;}
public Grade grade {get; set;}
Grade
=====
public int grade_id {get; set;}
public string grade_name {get; set;}
public ICollection<Student> students {get; set;}
我有一个 DOT 类来处理 LINQ 查询
StudentDomain
============
public int stud_id {get; set;}
public string stud_name {get; set;}
public int grade_id(fk) {get; set;}
public Grade grade {get; set;}
在我的DataAccessRepository类中,我有一个方法
public IEnumerable<StudentDomain> GetStudent(int stud_id)
{
var result= from st in db.Student
join gr in db.Grade on st.grade_id==gr.grade_id
select new StudentDomain
{
stud_id= st.stud_id,
stud_name= st.stud_name,
grade_id= gr.grade_id
//here I want to add grade name just to display for the
user but not to store in the database table
}
return result.ToList();
}
我想在浏览器中显示成绩 ID 的等效成绩名称,但我不希望它存储在数据库表中。如何访问成绩名称?
我觉得你对LINQ查询有误解,你不应该通过linq查询来存储任何东西,只要把gradename属性放在你的StudentDomain类中,如下所示
StudentDomain
============
public int stud_id {get; set;}
public string stud_name {get; set;}
public int grade_id(fk) {get; set;}
public int grade_name {get; set;}
并像这样填充它
public IEnumerable<StudentDomain> GetStudent(int stud_id)
{
var result= from st in db.Student
join gr in db.Grade on st.grade_id==gr.grade_id
select new StudentDomain
{
stud_id= st.stud_id,
stud_name= st.stud_name,
grade_id= gr.grade_id
grade_name=gr.grade_name
}
return result.ToList();
}