Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将SQL转换为实体框架_C#_Entity Framework - Fatal编程技术网

C# 将SQL转换为实体框架

C# 将SQL转换为实体框架,c#,entity-framework,C#,Entity Framework,如何将其转换为实体框架 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") // sour

如何将其转换为实体框架

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

从我的头顶上:

var query1 = from e in Emp
             join p in Post
             on e.PostID equals p.PostID
             select new {e.Fname, e.Lname, p.Position};

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

员工和职位表之间的关系是什么?如果您在问题中也包括表关系,则更好。创建到
PostID
字段的外键关系,您可以直接从
Positions
进行查询,而无需使用join。