sql >> データベース >  >> RDS >> Mysql

関連するエンティティを含むEntityFrameworkとMySQLを使用して各グループの最新のレコードを取得する方法

    SqlQueryは必要ありません グループ化の前に順序付けを行うように構成します:

    var refGroupQuery = from m in dbContext.Messages
         group m by m.receiver_id into refGroup
         let firstItem = refGroup.OrderByDescending(x => x.created_at)
                                 .FirstOrDefault()
         select new MessageDTO { 
                                  id = firstItem.id, 
                                  content = firstItem.content,
                                  sender_email = firstItem.sender.email
                               };
    

    これは同じことを行いますが、ステートメント全体をSQLに変換します。これには、2つの利点があります

    • sender メッセージごとに遅延ロードされません
    • sender.email senderのときにクラッシュしません SQLにはnullオブジェクト参照がないため、はnullです。式全体(sender.email )nullを返すだけです。



    1. タイトルとして電子メールアドレスを使用してSQLテーブルを作成する

    2. クラス出席レコード形式SQLクエリ

    3. PostgreSQLクエリで行番号を表示するにはどうすればよいですか?

    4. テーブル'mysql.user'は存在しません:ERROR