C# 控制器方法实体模型

C# Controller method entity model

我的 asp.net mvc 项目中有一个使用 edmx 模型的控制器方法,用于从 SQL 数据库中的视图获取数据。目前,我只对 table 中的两列感兴趣。我能够使用我的实体 class 和一个简单的 Linq 语句来获取数据,以将 returned 数据存储到列表中。我想要做的是遍历列表,并检查这两列在哪里都填充了数据(值可以为 null 或填充了数据)和 return 给我一个 true 的行。下面是我的方法的代码片段:

public ActionResult GetCurrentState()
{

    // create the entity object
    ALCS4Entities entities = new ALCS4Entities();

    // Get the InterConnectPortGidAB column data
    var checkInterConnectPorts = (from icp in entities.LogicalConnectionEndToEnd_v
                                  select new
                                  {
                                      InterconnectPortGidA = icp.InterconnectPortGidA,
                                      InterconnectPortGidB = icp.InterconnectPortGidB
                                  }).ToList();

    return Json(new { interConnectPortGidABList = checkInterConnectPorts}, JsonRequestBehavior.AllowGet);

}

您可以在 from 实体之后和 select 之前直接使用 where:

var checkInterConnectPorts = (from icp in entities.LogicalConnectionEndToEnd_v
                              where InterconnectPortGidA != null 
                                 && InterconnectPortGidB != null
                              select new
                              {
                                  InterconnectPortGidA = icp.InterconnectPortGidA,
                                  InterconnectPortGidB = icp.InterconnectPortGidB
                              }).ToList();

这将通过 LINQ to SQL 转换为 SQL 语句,因此 运行 直接在 SQL 服务器上,即效率最高。

查询被延迟,它仅在执行查询时 运行s,在本例中为 .ToList()