首页 > 解决方案 > 在 c#.net 中将视图 SQL Server 替换为 public List<>

问题描述

我正在构建从 SQL Server 提取数据的 ac#.net Web 应用程序。我在 SQL Server 中有一个基于包含员工多条记录的单个表的视图。最多可以激活一条记录,但不一定是带有MAX(ID). 它包含员工的历史和当前状态。这是我必须处理的一些遗产。为了得到正确的记录,我按员工代码分组,并合计布尔字段 InDienst('当前就业'),最多可以是 1。基于此选择,我可以返回并选择正确的记录申请MAX(ID)

SELECT 
  Personeelscode_ref AS Personeelscode, 
  SUM(InDienst) AS InDienst
FROM dbo.tPersoneel
GROUP BY Personeelscode_ref

这工作正常。但是,由于我不是唯一可以访问数据库的人,因此我想将其移至 c#.net 控制器(或模型)并List<>在 c# 中应用替换视图的语句。像这样的东西:

public static List<tPersoneel> listEmployeeAll = EmployeeDB.tPersoneel
            .GroupBy(x => x.Personeelscode_ref)
            .Select( new tPersoneel
            {
                Personeelscode_ref as Personeelscode,
                (InDienst).sum()
            })
            .ToList();

你能告诉我正确的 c#.net 代码是什么吗?提前非常感谢!

标签: c#sql-serverlist

解决方案


使用此代码

List<tPersoneel> listEmployeeAll = EmployeeDB.tPersoneel.GroupBy(x => x.Personeelscode_ref)
    .Select(y => new { 
           Personeelscode = y.Key.Personeelscode_ref, 
           InDienst = y.Sum(x => x.InDienst)
    }).ToList();

或者

List<tPersoneel> listEmployeeAll = (from c in EmployeeDB.tPersoneel
      group c by c.Personeelscode_ref into g
      select new
      {
         Personeelscode = y.Key.Personeelscode_ref, 
         InDienst = y.Sum(x => x.InDienst)
      }).ToList();

推荐阅读