0

SQL Server データベースに、2 つのテーブルの UNION ALL であるビューがあります。特定のメンバーのビューからすべての行を取得するとき、これが私の呼び出しです。

 public IEnumerable<MemberTransaction> GetMemberTransactions(string socSecNo)
 {
     var query = Manager.MemberTransactions
         .Where(m => m.SocSecNo == socSecNo)
        .OrderByDescending(m => m.TranDate);

     var results = query.Execute();

     return results;
 }

コードから Get メソッドを呼び出し、返されたコレクションをグリッドのデータソース プロパティに割り当てます。行は、Get メソッドの order by ステートメントに従って表示されません。それらはランダムな順序で表示されます。

行を正しく表示するために、これを行う必要があります。

    IEnumerable<MemberTransaction> transactions = FetchMemberTransactions(currentMember.SocSecNo);
    MemberTransactionBS.DataSource = transactions.OrderByDescending(t => t.TranDate);
    MemberTransactionsGrid.Refresh();

    public IEnumerable<MemberTransaction> FetchMemberTransactions(string socSecNo)
    {
         var transactions = Repository.GetMemberTransactions(socSecNo);
         return transactions;
    }

ユニオンから行を返すことに問題はありますか? OrderByDescending期待どおりに動作しないのはなぜですか?

4

2 に答える 2

-1

あなたはFirst Wayはうまくいかないと言いましたが、私にはうまくいきました! だからセカンドウェイを試してください。

    // First Way
    public List<MemberTransaction> GetMemberTransactions(string socSecNo)
    {
        var orderedListOfData = Manager.MemberTransactions
                                .Where(m => m.SocSecNo == socSecNo)
                                .OrderByDescending(m => m.TranDate).ToList();
        return orderedListOfData;
    }



     // Second Way
     public List<MemberTransaction> GetMemberTransactions(string socSecNo)
     {
         var orderedListOfData = (from m in Manager.MemberTransactions
                                  where m.SocSecNo == socSecNo
                                  orderby m.TranDate descending
                                  select m).ToList();
         return orderedListOfData;
      }
于 2014-06-25T16:46:44.297 に答える