80742


Entity Frameworkでjoinした結果を取得したいのですが、結果として取得したデータのカラム数が多く、記述を簡潔にしたいと思います。  
moneyとCashというテーブルをJoinした場合に  
結果セットのうちCashテーブルのカラムだけを取り出したいのですが、何かいい書き方は無いでしょうか

[code]

        var addData = context.Maney.Where(n=>n.DATE==date && n.CODE==Code)
            .Join(context.Cash,
           man => man.ID,
           cash => cash.ID,
           (man, cash) => new { cash.colA,cash.ColB});//★カラムがもの凄く多い
    
[/code]

[code]

        var addData = context.Maney.Where(n=>n.DATE==date && n.CODE==Code)
            .Join(context.Cash,
           man => man.ID,
           cash => cash.ID,
           (man, cash) => new { cash.*}); //★こんなふうにまとめたい
    
[/code]

[code]

        var addData = context.Maney.Where(n=>n.DATE==date && n.CODE==Code)
            .Join(context.Cash,
           man => man.ID,
           cash => cash.ID,
           (man, cash) => new Cash()); //★"エンティティ型または複合型 'DATABase.Cash' は LINQ to Entities クエリでは構築できません。"というエラー
    
[/code]


CC BY-SA 4.0
2021-08-12T05:39:19.390
80741
2021-08-12T07:50:58.193
2021-08-12T07:50:58.193
4236
15047
question
c# entity-framework
C# (2015 .NetFramework4.6)のEntity FrameworkのJoinして入手したデータのカラム数が多いのでテーブル名で指定したい

[code]

    var addData = context.Maney
        .Where(n=>n.DATE==date && n.CODE==Code)
        .Join(context.Cash,
            man => man.ID,
            cash => cash.ID,
            (man, cash) => cash);
    
[/code]

これでいけないでしょうか？

[code]

    var addData = context.Cash
        .Where(cash => context.Maney.Any(man => man.ID==cash.ID && man.DATE==date && man.CODE==Code));
    
[/code]

とかでもいけるかもしれません。


CC BY-SA 4.0
2021-08-12T05:59:19.927
80742
2021-08-12T05:59:19.927
4236
80741
answer