0

我有一个包含许多字段的表,我只想获取几个单独的字段,我使用 EF 并将另一个表添加到查询中,如下所示

            var Test= ve.Folders.Include("Hosting")
                .Where(a => a.Collateral!= true)
                .AsEnumerable()
                .Select(p => new 
                {
                    id = p.Folder_Id,
                    name = p.Full_Name,
                    add = p.Address,
                    date1 = p.Collateral_Date,
                    sName = p.Hosting._Name
                })
                .ToArray();

但是与第二个表关联的字段(sName = p.Hosting._Name)没有任何值查询不起作用许多尝试已经尝试但没有结果(有趣的是,当我问没有选择时一切正常)

提前感谢您的帮助

4

1 回答 1

2

需要注意的一点是,在这种情况下,Select调用 之后几乎没有什么好处AsEnumerable,因为表中的所有数据仍然是从数据库中查询的(不仅仅是您指定的字段)。

如果您想避免这种情况,并且只查询这五个字段,则可以删除该AsEnumerable调用。这意味着Select将作为 SQL 查询的一部分执行。这也意味着Include是不​​必要的,因为Select它将查询您想要的所有数据。

var Test= ve.Folders
            .Where(a => a.Collateral!= true)
            .Select(p => new 
            {
                id = p.Folder_Id,
                name = p.Full_Name,
                add = p.Address,
                date1 = p.Collateral_Date,
                sName = p.Hosting._Name
            })
            .ToArray();
于 2013-05-01T18:46:52.603 回答