【问题标题】:Linq-SQL error on Silverlight projectSilverlight 项目上的 Linq-SQL 错误
【发布时间】:2012-03-22 01:37:04
【问题描述】:

下面是我使用 LINQ to SQL 的代码,在执行时我收到一条错误消息,提示“对象引用未设置为对象的实例”。我加入了 3 个表用户、用户角色和角色。用户角色是桥表.我使用连接从使用桥接表的 2 个表中检索数据,我得到对象引用错误。

 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);
        }
    }

}

}

【问题讨论】:

  • 哪一行导致错误?
  • 在构建时没有错误,在执行时它打开时出现此错误但没有特别显示行
  • 在抛出异常时让 Visual Studio 中断,一分钟后就会清楚导致异常的原因。我敢打赌,您的 Collection 课程不符合犹太教规。那到底是什么样的弱类型类? .net 通用集合不是更好吗?

标签: sql-server-2008 entity-framework-4


【解决方案1】:

你不认为最后一个语句应该是第一个吗?

【讨论】:

  • 我在同一个地方有最后一条语句,但是通过简单的查询它可以工作,在用 join 更改我的查询后它显示错误。
  • 我不认为你展示了真实的代码,因此我们不能给你正确的答案,除非是显而易见的——你正在尝试使用尚未初始化的东西。
  • 我正在使用 silverlight Pivot Viewer 来显示我使用 LinQ-SQL 从数据库中收集的内容。这是我进行收集的真实代码。我需要显示来自多个表的数据,这就是我的目的我已经完成了collection.additem,我从2个表中获取数据并制作一个集合并在pivot viewer中显示。这是我的cs文件。下面是我的完整代码
  • 在查询中引用的每个 DBSet 之后附加 .GetQuery() 怎么样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-27
  • 2011-01-10
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多