2017-10-30 9 views
-1

2番目のテーブルがあり、1番目のテーブルからすべてのレコードを取得したい、2番目のテーブルから2番目のテーブルを取得したい記録。私はasp.net C#でエンティティフレームワークを使用しています。asp.netのエンティティフレームワークでjoinを使用して2番目のテーブルからidの最大値を取得する方法C#

私は以下のコードを試しましたが、最初のテーブル、つまりtblblogsから1つのレコードしか取りません。すべてのレコードを残し、このクエリを使用してすべてのレコードを取得する方法は?私はあなたに非常に感謝していますplz助けてください。ありがとう!

 var query= (from c in db.tblBlogs join a in db.tblBlogMedias on c.id 
        equals a.BlogId where c.id==db.tblBlogMedias.Max(p=>p.id) 

         select new 
         {} 

答えて

0

私が理解していれば、ブログの特定のフィールドとtblBlogMediasのリストを持つオブジェクトを取得することができます。

あなたはこのコードを試みることができる:

var query2 = (from c in db.tblBlogs 
    orderby c.Id descending 
    group c.tblBlogMedias by new { c.Id, c.Name } into gb //It will show Id and name of tblBlogs, you can use more fields if you want 
    select new { 
     Id = gb.Key.Id, 
     Name = gb.Key.Name, //I don't know if you have this field, but you should change it 
     SecondTable = gb.ToList() 
    }) 
    .OrderByDescending(o => o.Id) //this orderby with FirstOrDefault() replace where c.id==db.tblBlogMedias.Max(p=>p.id) 
    .FirstOrDefault(); 
+0

エンティティフレームワークでは、このクエリを作成する方法。上記のコードは、 を選択してください。tblBlogからtblBlogMedia.BlogPicturePathを選択してください。tblBlog.log = ) ここBlogId = '1'はちょうど例えばBlogId = @blogidのようなものが欲しい –

関連する問題