2012-03-21 69 views
0

下面是我的代碼,使用LINQ to SQL,執行時我得到一個錯誤消息,說「對象引用未設置爲對象的實例」。我加入了3個表Users,UsersinRoles和Roles.Userinroles是橋表。我使用連接來從兩個表中檢索數據,使用橋表我得到對象引用錯誤。關於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 2012-03-21 14:11:20

+0

構建沒有錯誤,執行時會打開並出現此錯誤,但沒有明確顯示行 – newuser1555 2012-03-21 15:01:03

+0

讓Visual Studio在拋出異常時中斷,它將在一分鐘內清除導致異常的原因。我敢打賭,你的'Collection'類不是猶太教。無論如何,什麼樣的弱類型是? .net通用集合是不是更好? – 2012-03-25 22:29:23

回答

0

難道你不認爲最後一條語句應該是第一個?

+0

是的,我改變了第一行,但仍然是相同的錯誤 – newuser1555 2012-03-21 15:53:38

+0

我有最後一個語句在同一個地方,但與簡單的查詢它的工作,改變我的查詢後加入它顯示錯誤。 – newuser1555 2012-03-21 16:02:14

+0

我不認爲你展示真實的代碼,因此我們不能給你正確的答案,除了明顯的答案 - 你正在嘗試使用尚未初始化的東西。 – 2012-03-21 17:13:40