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()
。
我的 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()
。