将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();

将SQL转换为实体框架

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来自哪里,它不是在您的原始查询中,而是在您的试用中,其次,这需要在模型中正确定义关系(使用导航属性)。