【解決方法】linq クエリのエイリアス列名


やあ、

出力を取得するためにlinq qyeryを書いていますが、列のエイリアス名が必要です。 私のクエリはこのようなものです

C#
var q = from a in Number
        join b in Dupnum on a.ID equals b.ID
                           select new
                           {
                                a.Number ,
                                a.LineNumber,
                               a.Item,
                               a.Des,
                               a.SerialNumber
                           };

エイリアス名にはこのように書いています

C#
["Number#"] = a.Number ,
[Lime Number#] =a.LineNumber

しかし、「無効な匿名型メンバーの宣言です。匿名型は宣言する必要があります」のようなエラーが表示されました

よろしく、
S.イナヤット

解決策 1

エイリアスの名前が C# の命名規則に準拠している限り、余分な文字を使用せずにエイリアスを簡単に定義できるはずです。 たとえば、次のことを試してください。

C#
var q = from a in Number
        join b in Dupnum on a.ID equals b.ID
                           select new
                           {
                               f1 = a.Number ,
                               f2 = a.LineNumber,
                               f3 = a.Item,
                               f4 = a.Des,
                               f5 = a.SerialNumber
                           };

解決策 2

C#
DGV_customergrid.DataSource = from S in dc.CUSTOMERs
                                              select new
                                              {
                                                 CustomerName = S.CUSTOMERNAME,
                                                  Customer2 = S.CUSTOMER2,
                                                  FathersName = S.SO,
                                                  Address = S.RESIDENCE,
                                                  Village = S.VILLAGE,
                                                  Mandal = S.MANDAL
                                              };

解決策 3

同じ問題があり、エイリアスの前にドットを追加しました。 したがって、コードの場合は次のようになります

.[“Number”] = a.Number ,
.[Lime Number] =a.LineNumber

ではごきげんよう、
トニー

解決策 12

また、 させて 次のようなクエリの演算子:

var q = from a in studentList
let Number = a.Number
let LimeNumber = a.LineNumber
select new { Number, LimeNumber	};

コメント

タイトルとURLをコピーしました