【问题标题】:Returning data from multiple sql tables entity framework web api从多个sql表实体框架web api返回数据
【发布时间】:2017-10-30 15:52:36
【问题描述】:

我有一个本地存储的数据库,其中包含许多不同的表,所有表都像这样连接在一起:

我正在尝试使用实体框架为这些创建一个 Web API。我的控制器看起来像这样:

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?^
    }
}

我不确定如何使用实体框架连接这些表?我的 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

任何帮助/指针将不胜感激!

【问题讨论】:

    标签: c# mysql entity-framework linq api


    【解决方案1】:

    您可以通过三种方式从实体框架中的连接表中返回结果:
    1-使用Linq,请参考link here
    2- 使用include,请参考link here
    3- 使用原始 sql 就像使用通用函数 _context.Database.SqlQuery&lt;type&gt;(sqlString)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-23
      • 2014-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多