手动输入sql即可映射到c#对象,就像.Include(“”)方法一样
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了手动输入sql即可映射到c#对象,就像.Include(“”)方法一样,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1209字,纯文字阅读大概需要2分钟。
内容图文
![手动输入sql即可映射到c#对象,就像.Include(“”)方法一样](/upload/InfoBanner/zyjiaocheng/882/38f129b2af8f48149b0f18d85e11e8e4.jpg)
为了简单起见,这里是示例模型.我的模型由一个老师和很多学生组成.
public class Teacher
{
public int Id { get; set; }
public string Name { get; set; }
public List<Student> Students { get; set; }
public Teacher()
{
Students = new List<Student>();
}
}
public class Student
{
public int Id { get; set; }
public int TeacherId { get; set; }
[ForeignKey("TeacherId")]
public Teacher Teacher { get; set; }
public string Name { get; set; }
}
使用EntityFramework,我可以轻松地使所有老师及其学生使用linq
context.Teachers.Include("Students");
但是,如果我使用的大型模型集需要包含许多子属性,则此查询可能需要一些时间.
我的子问题是,如果要链接此linq语句,并选择仅包含我需要的教师属性的新视图模型,然后将仅具有所需属性的所有学生选择到我的学生视图模型中,依此类推.
这会像手动编写sql一样有效吗?实体框架会增加开销吗?
现在开始我真正的问题.我将如何手动编写此查询以包括子属性并以将其自动绑定到我的视图模型的方式返回它?
例:
select Teacher.Id, Teacher.Name, Student.Id, Student.Name
from Teachers
inner join Students on Teacher.Id = Student.TeacherId
解决方法:
为此,您根本不会使用“包含”,而只是使用“选择”:
var query = context.Teachers.Select(teacher => new
{
teacher.Id,
teacher.Name,
Students = teacher.Students.Select(student => new
{
student.Id,
student.Name,
}
}
内容总结
以上是互联网集市为您收集整理的手动输入sql即可映射到c#对象,就像.Include(“”)方法一样全部内容,希望文章能够帮你解决手动输入sql即可映射到c#对象,就像.Include(“”)方法一样所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。