我有一个本地存储的数据库,其中包含许多不同的表,所有表都像这样连接在一起:
我正在尝试使用 vs 上的 Entity Framework 为这些创建一个 Web API。我的 Controller 如下所示:
public class CourseController : ApiController
{
QubDBEntities entities = new QubDBEntities();
public IEnumerable<Course> Get()
{
using (QubDBEntities entities = new QubDBEntities())
{
return entities.Courses.ToList();
}
}
public Course Get(Guid id)
{
using (QubDBEntities entities = new QubDBEntities())
{
return entities.Courses.FirstOrDefault(e => e.Id == id);
}
}
public Course Get(string day, DateTime time, int duration,string moduleRef, string moduleName, string courseRef,
string roomRef,string roomName, string roomFloor, int roomNumber, string buildingRef, string buildingName)
{
//how do I join tables inside here so that I can
//return the courses with this view?^
}
}
我不确定如何使用 Entity Framework 连接这些表?我的 SQL 选择语句在这里:
SELECT
dbo.TimeTable.Day, dbo.TimeTable.StartTime, dbo.TimeTable.Duration, dbo.Module.ModuleRef
, dbo.Module.ModuleName, dbo.Course.CourseRef, dbo.Room.RoomRef, dbo.Room.RoomName
, dbo.Room.RoomFloor, dbo.Room.RoomNumber, dbo.Building.BuildingRef, dbo.Building.BuildingName
FROM dbo.Room INNER JOIN
dbo.TimeTable INNER JOIN
dbo.Module ON dbo.TimeTable.ModuleId = dbo.Module.Id ON dbo.Room.Id = dbo.TimeTable.RoomId INNER JOIN
dbo.Building ON dbo.Room.BuildingId = dbo.Building.Id LEFT OUTER JOIN
dbo.Course INNER JOIN
dbo.CourseModule ON dbo.Course.Id = dbo.CourseModule.CourseId ON dbo.Module.Id = dbo.CourseModule.ModuleId
如有任何帮助/指点,我们将不胜感激!
最佳答案
在 Entity Framework 中,您可以通过三种方式返回连接表的结果:
1- 使用 Linq
,请引用link here
2- 使用 include
,请引用link here
3- 像使用通用函数一样使用原始 sql _context.Database.SqlQuery<type>(sqlString)
关于c# - 从多个 sql 表 Entity Framework web api 返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47019377/