0

私はこのクエリを持っています:

var sole = SoleService.All().Where(c => c.Status != 250)
               .Select(x => new { 
                    ID = x.ID, Code = new {CodeName = x.Code + x.Country}, 
                    Name = x.Name 
               })
               .Distinct()
               .OrderBy(s => s.Code);

このようにそれは私にエラーを与えます。私が欲しいのは、データソースに新しい変数を使用できるように、連結文字列を組み合わせCodeて好きにすることです。Country何かのようなもの -001France

PS

私が使用していて、現在機能しているのはこれです:

var sole = SoleService.All().Where(c => c.Status != 250)
               .Select(x => new { 
                   ID = x.ID, Code = x.Code, Name = x.Name, Country = x.Country })
               .Distinct()
               .OrderBy(s => s.Code);

したがって、必要なのは、このクエリを変更してCode +Country、1つの変数として使用できるようにすることです。上記は私がうまくいくと思った私の試みです。

4

3 に答える 3

5

のように聞こえる:

 var sole = SoleService.All().Where(c => c.Status != 250)
                .AsEnumerable()
                .Select(x => new { 
                                ID = x.ID, 
                                Code = x.Code + x.Country, 
                                Name = x.Name
                                })
                .Distinct()
                .OrderBy(s => s.Code);

内部の匿名タイプはまったく必要ありません。EFで作業している場合、正弦文字列+はサポートされていませんAsEnumerable。選択を行う前に呼び出してください。

于 2013-03-27T10:42:49.290 に答える
2

s.Code匿名タイプのインスタンスであるため、並べ替えることはできません。私は一緒に行きます

var sole = SoleService.All().Where(c => c.Status != 250)
        .Select(x => new { ID = x.ID, Code = new {CodeName = x.Code + x.Country}, Name = x.Name })
        .Distinct()
        .OrderBy(s => s.Code.CodeName);
于 2013-03-27T10:43:35.333 に答える
0

+演算子は、数値プロパティを追加しようとしていると信じているため、.toString()を追加してみてください。

そのように:

 var sole = SoleService.All().Where(c => c.Status != 250)
        .Select(x => new { ID = x.ID, Code = new {CodeName = x.Code.ToString() + x.Country.ToString()}, Name = x.Name })
        .Distinct()
        .OrderBy(s => s.Code);
于 2013-03-27T10:44:18.537 に答える