将SQL转换为实体框架
本文关键字:实体 框架 转换 SQL | 更新日期: 2023-09-27 18:04:43
如何将其转换为实体框架
Emp
______
EmpID
Fname
Lname
PostID
Post
______
PostID
Position
Select e.Fname, e.Lname, p.Position from Emp e inner join Post p
on e.PostID = p.PostID
并绑定到DataGridView
试验:
var query = db.Employees.Include("Position") // source
.Join(db.Positions, // target
c => c.PosID, // FK
cm => cm.PosID, // PK
(c, cm) => new { Employees = c, Positions = cm }) // project result
.Select(x => x.Employees).Where(m => m.Fname.Contains(txtSrchFirstName.Text) && m.City.Contains(txtSrchCity.Text));
.Select(x => new { x.EmpID, x.Lname, x.Fname, x.Position, x.City}); // select result
GridView1.DataSource = query1.ToList();
GridView1.DataBind();
From off the top of my head:
var query1 = from e in Emp
join p in Post
on e.PostID equals p.PostID
select new {e.Fname, e.Lname, p.Position};
jmcihinney的查询相当于你的sql查询,但是通常,使用EF,你会尝试使用导航属性来访问相关数据,这样你就不必在每个查询中描述实体之间的关系。
你只需要写
var query = from e in db.Employees
from p in e.Posts
select new { e.EmpID, e.Lname, e.Fname, p.Position, p.City});
注
我不知道City来自哪里,它不是在您的原始查询中,而是在您的试用中,其次,这需要在模型中正确定义关系(使用导航属性)。