Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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# 实体框架-如何查询多个表并选择要显示的列_C#_Entity Framework_Linq - Fatal编程技术网

C# 实体框架-如何查询多个表并选择要显示的列

C# 实体框架-如何查询多个表并选择要显示的列,c#,entity-framework,linq,C#,Entity Framework,Linq,我有一个包含多个表的数据库和一些存储过程,这些存储过程查询是否要从各个表中获取特定数据以显示所需信息。 查找以下存储过程的一个示例: SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY dbo.[table1].ReportedDate DESC) AS rowNumber, dbo.[table1].[id], dbo.[table1].caseReference, dbo.[table2].orga

我有一个包含多个表的数据库和一些存储过程,这些存储过程查询是否要从各个表中获取特定数据以显示所需信息。 查找以下存储过程的一个示例:

SELECT DISTINCT             
    ROW_NUMBER() OVER (ORDER BY dbo.[table1].ReportedDate DESC) AS rowNumber,
    dbo.[table1].[id],
    dbo.[table1].caseReference,
    dbo.[table2].organisationName AS customerName,
    dbo.[table3].assetRegistration,
    dbo.[table4].surname
FROM dbo.[table1] WITH (NOLOCK)
LEFT JOIN   dbo.[table2] with (NOLOCK)
ON          dbo.[table2].JobId = dbo.[table1].[id]
LEFT JOIN   dbo.[table3] WITH (NOLOCK)
ON          dbo.[table3].id = dbo.[table2].[JobServiceId]
LEFT JOIN   dbo.[table4] WITH (NOLOCK)
ON          dbo.[table4].[jobID] = dbo.[table1].[id]
WHERE (table1.caseReference LIKE @caseReference+'%')
我想从使用这种存储过程转向使用实体框架的更基于代码的方法。如何在映射到数据库的dbContext类上使用Linq查询重新创建类似上面的查询


我在计算如何从每个表中选择要返回的数据以及如何将这些数据放在一起时遇到了很多问题。

您可以通过映射到数据库的dbContext类轻松地Linq querylambda expressions

选中此复选框将对您有所帮助


为了在将来获得最佳性能和易于维护,我更愿意使用存储过程来处理复杂的逻辑。我倾向于采用让EF为我编写SQL的方法(基本ORM使用场景),但在生成的SQL效率低下时,我会创建自己的存储过程。您上面的示例将是一个示例,说明我将在EF生成的SQL上使用存储过程。@techspider在性能方面,将实体框架用于此类查询或存储过程,这将提供更好的结果,请记住,上面的示例是中示例的简化版本use@RazvanGoia你能试一下我的答案吗?@RazvanGoia有很多文章在区分EF和SP之间的用法。例如,看看这个。一种药不能治愈所有的疾病!!编写代码并不是那么重要;考虑安全性、可维护性和易支持性。