I以下のモデルがあります:標準SQLを使用してC#のGROUPBYとLINQの方法と選択
public class HeadCount
{
public int Id { get; set; }
public int ContractId { get; set; }
public string FiscalYear { get; set; }
public string TaskOrder { get; set; }
public decimal ContractHours { get; set; }
public int PersonId { get; set; }
public string CompanyName { get; set; }
public string UserId { get; set; }
public int ClinAssignId { get; set; }
}
が、私はSSMSで次のスクリプトを実行しています
select personid, sum(contracthours) as hours from headcounts where personid != 0 group by personid
私が変換しようとstubblingていますがこれはLINQのmenthod呼び出しに。
var results = _context.HeadCounts
.GroupBy(p => p.PersonId)
.Select(n => new {personid = n.Key, hours = n.Sum(ContractHours)});
それは合計でContractHours
が好きではありません:これは私が試したものです。私も試しましたn.ContractHours
私は間違って何をしていますか?コレクションは、プリミティブ数値のコレクションではありませんので、あなたが必要な場合は
'n.Sum(g => g.ContractHours)' – Rob
@Rob - ありがとう!私はそれが何か単純だと思った。関数内のラムダを完全に忘れた –
どのようなエラーメッセージが表示されましたか? –