Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Sql EntityFramework的新增功能如何在linq中编写此查询到entity_Sql_Entity Framework_Linq To Entities - Fatal编程技术网

Sql EntityFramework的新增功能如何在linq中编写此查询到entity

Sql EntityFramework的新增功能如何在linq中编写此查询到entity,sql,entity-framework,linq-to-entities,Sql,Entity Framework,Linq To Entities,我已经创建了模型,但是如何编写这个查询现在让我很困惑?有人能帮我吗?我使用老式的SqlConnection实现了这一点,但我被告知将其移植到Entity Framework 4。如果使用的是.edmx文件,您可以查看设计器并查看导航属性。与其用纯sql,不如考虑如何根据.edmx的导航属性构建要从数据库中提取的对象。如果使用的是.edmx文件,可以查看设计器并查看导航属性。与其用纯sql,不如考虑如何根据.edmx的导航属性构建要从数据库中提取的对象。如果表没有关系,则.edmx文件中没有导航属

我已经创建了模型,但是如何编写这个查询现在让我很困惑?有人能帮我吗?我使用老式的SqlConnection实现了这一点,但我被告知将其移植到Entity Framework 4。

如果使用的是.edmx文件,您可以查看设计器并查看导航属性。与其用纯sql,不如考虑如何根据.edmx的导航属性构建要从数据库中提取的对象。

如果使用的是.edmx文件,可以查看设计器并查看导航属性。与其用纯sql,不如考虑如何根据.edmx的导航属性构建要从数据库中提取的对象。

如果表没有关系,则.edmx文件中没有导航属性。所以你的LINQ应该是这样的:

SELECT i.answerc, d.answera, d.answerb
FROM tableone AS u 
INNER JOIN tabletwo AS i ON u.OneId = i.OneId
INNER JOIN tablethree   AS l ON u.TwoId = l.TwoId
INNER JOIN tablefour    AS k ON u.ThreeId = k.ThreeId
INNER JOIN tablefive    AS p ON u.fourId = p.fourId
INNER JOIN tablesix AS d ON u.fiveId = d.fiveId
WHERE u.columnone  = @parameter_one
AND l.columnone = @parameter_two
AND k.columnone = @parameter_three
AND p.columnone = @Parameter_four
其中参数xxx是变量。
但是如果你有导航属性,你应该使用它们

如果表不在关系中,则.edmx文件中没有导航属性。所以你的LINQ应该是这样的:

SELECT i.answerc, d.answera, d.answerb
FROM tableone AS u 
INNER JOIN tabletwo AS i ON u.OneId = i.OneId
INNER JOIN tablethree   AS l ON u.TwoId = l.TwoId
INNER JOIN tablefour    AS k ON u.ThreeId = k.ThreeId
INNER JOIN tablefive    AS p ON u.fourId = p.fourId
INNER JOIN tablesix AS d ON u.fiveId = d.fiveId
WHERE u.columnone  = @parameter_one
AND l.columnone = @parameter_two
AND k.columnone = @parameter_three
AND p.columnone = @Parameter_four
其中参数xxx是变量。
但是如果你有导航属性,你应该使用它们

如果你建立了关系,我想你可以这样做

var query = from u in context.tableone
    join i in context.tabletwo on u.OneId equals i.OneId  
    join l in context.tablethree on u.TwoId equals l.TwoId 
    join k in context.tablefour on u.ThreeId equals k.ThreeId 
    join p in context.tablefive on u.fourId equals p.fourId  
    join d in context.tablesix on u.fiveId equals d.fiveId
    where u.columnone == parameterONE 
      && l.columnone == parameterTWO
      && k.columnone == parameterTHREE
      && p.columnone == parameterFOUR
    select new { i.answerc, d.answera, d.answerb };

如果你建立了关系,我想你可以这样做

var query = from u in context.tableone
    join i in context.tabletwo on u.OneId equals i.OneId  
    join l in context.tablethree on u.TwoId equals l.TwoId 
    join k in context.tablefour on u.ThreeId equals k.ThreeId 
    join p in context.tablefive on u.fourId equals p.fourId  
    join d in context.tablesix on u.fiveId equals d.fiveId
    where u.columnone == parameterONE 
      && l.columnone == parameterTWO
      && k.columnone == parameterTHREE
      && p.columnone == parameterFOUR
    select new { i.answerc, d.answera, d.answerb };

这是一个…有趣的…模式,我假设这些都是擦洗过的表名。我当然希望。是的,斯科特,他们是,不确定我被允许或应该公开什么,所以我确实删除了所有你需要包括你的模型的东西。这是一个…有趣的…模式,你在那里,我假设这些都是被删除的表名。我当然希望。是的,斯科特,他们是,不确定我被允许或应该公开什么,所以我确实擦洗了所有你需要包括你的模型的东西。谢谢,我知道这花了我一段时间,但我明白了你所说的导航属性。这是正确的方法。我选择了另一个答案,因为他确实回答了我最初的问题,但你和他都是对的。EF意味着不在SQLness和JOIN中思考。谢谢你帮我做对了。谢谢,我知道这花了我一段时间,但我明白你说的导航属性是什么。这是正确的方法。我选择了另一个答案,因为他确实回答了我最初的问题,但你和他都是对的。EF意味着不在SQLness和JOIN中思考。谢谢你帮我把它弄对。我确实使用了导航属性,就像克里斯,然后你提到的,这是更好更可读的方式。但是,感谢您也回答了最初的问题,无论它是多么无知……)我确实使用了导航属性,就像Chris,然后你提到的,这是更好的更可读的方式。但是,感谢您也回答了最初的问题,无论它是多么无知……)