2012-03-21 21 views
0

以下はLINQ to SQLを使用したコードです。実行時に「オブジェクトのインスタンスがオブジェクトのインスタンスに設定されていません」というエラーメッセージが表示されます。 Roles.Userinrolesはブリッジテーブルです。私は、ブリッジテーブルを使用して2つのテーブルからデータを取得するためにjoinを使用します。オブジェクト参照エラーが発生します。SilverlightプロジェクトでLinq-SQLエラーが発生しました

public class Users : CollectionFactoryBase 
{ 
    public Users() 
    { 
     this.Summary = "Collection of Users"; 
    } 
    public override Collection MakeCollection(CollectionRequestContext context) 
    { 
     UsersDataContext m_dataContext = new UsersDataContext(); 

     const int maxItems_c = 150; 
     try 
     { 
      // string sessionvalue = HttpContext.Current.Session["SessionKey"] as string; 

      var Users = from p in m_dataContext.aspnet_Users 
         join t in m_dataContext.aspnet_UsersInRoles on 
         p.UserId equals t.UserId 
         join r in m_dataContext.aspnet_Roles on 
         t.RoleId equals r.RoleId 

         select new 
         { 
          UserName = p.UserName, 
          UserId = p.UserId, 
          RoleId = r.RoleId, 
          RoleName = r.RoleName, 
          userid = t.UserId, 
          roleid = t.RoleId 


         }; 


      Collection collection = new Collection(); 
      collection.Name = "Users"; 
      foreach (var user in Users.Take(maxItems_c)) 
      { 
       collection.AddItem(user.UserName, user.RoleName, null, null, null, null, null); 
      } 
      return collection; 
     } 
     catch (Exception ex) 
     { 

      return ErrorCollection.FromException(ex); 
     } 
    } 

} 

}

+0

どのラインでエラーが発生していますか? – GrandMasterFlush

+0

ビルド時にエラーは発生せず、実行時にこのエラーで開きますが、特に行は表示されません。 – newuser1555

+0

例外がスローされたときにVisual Studioをブレークさせると、何分例外が発生するのかは分かりません。私の賭けは、あなたの 'Collection'クラスが正当なものではないということです。とにかくどのような弱い種類のクラスですか?ネット汎用コレクションは良くないのですか? –

答えて

0

あなたは最後の文は、最初の1であることを思いませんか?

+0

はい、私は最初の行に変更されましたが、それでも同じエラー – newuser1555

+0

私は同じ場所で最後のステートメントを持っていましたが、単純なクエリでは、参加してクエリを変更した後にエラーが表示されます。 – newuser1555

+0

私はあなたが実際のコードを表示しているとは思わないので、明らかなもの以外は正しい答えを与えることはできません。まだ初期化されていないものを使用しようとしています。 –

関連する問題