2010-11-20 25 views
0

私は、joinとintoを使ってlinqクエリを作成しています。私は再同調オブジェクトにUFおよびULのテーブルから列を追加する必要がありますが、私はHoldingvarに突起を持ったら私はとき、インテリセンスはもう私のUFまたはULへのアクセス権を与えるものではありませんlinq投影

var testmyquery = from uf in TheFolderModel.UserFolders 
       where (uf.UserID == TheUserID) 
       join ul in TheFolderModel.UserBooksheets on 
       uf.FolderID equals ul.FolderID 
       join ll in TheFolderModel.BooksheetBooks on 
       ul.BooksheetID equals ll.BooksheetID 
       join ua in TheFolderModel.BooksAppointments on 
       ll.BookID equals ua.BookID 
       group ua.BookID by uf.FolderID into Holdingvar 
       orderby Holdingvar.Key 
       select new { TheCount = Holdingvar.Count(), Holdingvar.Key }; 

select new {}ステートメントに追加します。 select文に列を追加するにはどうすればよいですか?

ありがとうございました。

答えて

1

私はそれを得た:私はちょうど私が保持する変数の投影をした後、変数を再定義するために必要な

var testmyquery = from uf in TheFolderModel.UserFolders 
       where (uf.UserID == TheUserID) 
       join ul in TheFolderModel.UserBooksheets on 
       uf.FolderID equals ul.FolderID 
       join ll in TheFolderModel.BooksheetBooks on 
       ul.BooksheetID equals ll.BooksheetID 
       join ua in TheFolderModel.BooksAppointments on 
       ll.BookID equals ua.BookID 
       group ua.BookID by uf.FolderID into Holdingvar 
       orderby Holdingvar.Key 
       from uf2 in TheFolderModel.UserFolders 
       where uf2.FolderID == testg.Key 
       select new { testk = testg.Count(), testg.Key, uf2.FolderName }; 

0

新しい{...を選択すると、ufとulは範囲外です。

私はこれがあなたのために働くだろうかどうかわからないんだけど、あなたは数とキーが必要な場合は、let文を行うことができます:

var testmyquery = from uf in TheFolderModel.UserFolders 
      where (uf.UserID == TheUserID) 
      join ul in TheFolderModel.UserBooksheets on 
      uf.FolderID equals ul.FolderID 
      join ll in TheFolderModel.BooksheetBooks on 
      ul.BooksheetID equals ll.BooksheetID 
      join ua in TheFolderModel.BooksAppointments on 
      ll.BookID equals ua.BookID 
      group ua.BookID by uf.FolderID into Holdingvar 
      orderby Holdingvar.Key 
      let someproperty = new { TheCount = Holdingvar.Count(), Holdingvar.Key } 
      select new { uf.UserID, ........ } 
0

私はこのすべての時間を行います。なぜそれはあなたのために働いていないのですか?私のクエリの構造は少し異なります。おそらくあなたはそれを改革する必要がありますか?

var q = (from at in Repository.For<AuditTrailEntity>() 
       from att in Repository.For<AuditTrailTypeEntity>() 
       join ue in Repository.For<UserEntity>() on at.UserId equals ue.RowId 
       join up in Repository.For<UserProfileEntity>() on ue.AspnetUserId equals up.UserId 
       where (at.AffectedEntityName == "AssetEntity" && at.PKId == assetId.ToString() && at.ActionType == att.RowId) 
       orderby at.CreatedDate descending 
       select new AssetAuditTrailModel 
          { 
           RowId = at.RowId, 
           AffectedEntityName = at.AffectedEntityName, 
           PKId = at.PKId, 
           ActionType = at.ActionType, 
           ActionData = at.ActionData, 
           UserId = at.UserId, 
           CreatedDate = at.CreatedDate, 
           ActionName = att.FriendlyName, 
           UserName = up.FirstName + " " + up.LastName, 
          });