2011-12-08 88 views
2

我最近在与Linq数据展示相关的问题上挣扎。我的任务是从3个表中提取信息。 其中一个包含资源列表,另一个包含关于相关服务的信息。这两个表与交接表连接。 结构:上述Linq/C#从路口表获取信息

Resource Table: 
ResourceID (PK) 
Description 

ServiceResources Table (junction table): 
ServiceID(FK) 
Resource(FK) 

Service Table: 
ServiceID (PK) 
Description 

版被简化,表更延长。

所以,问题是: 我产生特殊的对象将包含所有的有用信息:

public class ResourceAndService 
    { 

     public string Resource 
     { 
      get; 
      set; 
     } 
     public string Service 
     { 
      get; 
      set; 
     }(...) 

而且我想从LINQ查询信息,以填补它,这应该返回的IList:

public IList<ResourceAndService> ReturnListOfServicesAndResources() 
    { 
     var dt = (from res in entities.Resource 
        from service in entities.Service 
       select 
       new ResourceAndService(){ 
         Resource = res.ResourceID, 
         Service= ser.ServiceID, 
      (...) 
       }).ToList(); 

     return dt; 
    } 

不幸的是不断,当我试图执行这个命令,也有在调试窗口中警告说:

型“System.NullReferenceException”的第一次机会异常出现在RaportBrowser.DLL

和查询永远不会完成。

你有这种问题的经验吗?

回答

0

好的,空指针异常的问题在别的地方。
顺便说一句,您的信息访问结表的正确方法是:

public IList<ResourceAndService> ReturnListOfServicesAndResources() 
{ 
    var dt = (from res in entities.Resource 
       from service in res.Service 
       select 
       new ResourceAndService() 
       { 
        Resource = res.ResourceID, 
        Service= ser.ServiceID, 
        (...) 
       }).ToList(); 
    return dt; 
}