c# - Linq/C# 从联结表中获取信息

标签 c# linq junction

我最近正在努力解决与 Linq 数据展示相关的问题。我的任务是从 3 个表中提取信息。 一个包含资源列表,另一个包含相关服务的信息。这两个表与连接表连接。 结构:

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

不幸的是,当我尝试执行这个命令时,调试窗口中出现警告说:

A first chance exception of type 'System.NullReferenceException' occurred in RaportBrowser.DLL

查询永远不会结束。

你遇到过这样的问题吗?

最佳答案

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

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

关于c# - Linq/C# 从联结表中获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8429548/

相关文章:

c# - 正确解码 Azure Blob SAS Url 以避免签名格式不正确错误

c# - 在 NHibernate 中调用 Named Query 并将参数传递给 Sybase Server

c# - moq项目死了吗?我投资学习它是否明智?

c# - 如何检查数组中的所有值是否相等

java - 触发听众的 toast

c# - 使用 LINQ to XML 从 XML 文件读取文本

c# - 使用 Entity Framework 选择 DBSet 中的行

c# - 如何在不加载整行的情况下更新 LINQ 中的单个列?

php - Yii 多对多,联结表对象图

C# 检测路径中的文件夹连接