如何使用JOIN从SQL查询创建ADO.NET实体数据模型?

时间:2018-01-25 11:48:48

标签: c# sql-server entity-framework ado.net

我创建了.NET控制台应用程序(C#)。我的SQL Server数据库有3个表。我通过Entity Framework Database First指南为项目中的那些表创建了ADO.NET实体数据模型。它们工作正常,但我需要为我的SQL查询创建另一个模型,该模型如下:

SELECT users.name, users.userid, COUNT(userlogs.userid)
FROM users
LEFT JOIN userlogs ON users.userid = userlogs.userid
GROUP BY users.name, users.userid

期望在userlogs表中获取用户名,用户ID和日志计数。然后我的任务是循环遍历这些并创建字符串,我用它来显示"日志的前5个最常见原因"。
我应该如何创建所需的DbSet和Model,就像从表中生成的那样?

我正在使用Visual Studio 2017,SQL Server 2012,Entity Framework 6.4,.NET 4.6.x。

1 个答案:

答案 0 :(得分:2)

有两种方法可以做到这一点

  1. 创建存储过程并在那里编写查询。然后像导入表一样导入存储过程。可以选择导入存储过程。这将在您的edmx类中创建一个函数,您可以使用它来循环数据

  2. 在控制器或任何业务逻辑类中使用LINQ(首选方法),并通过lambda表达式或SQL到LINQ创建查询以从数据库中检索数据