C# wpf和ef使用include选择表的一部分

C# wpf和ef使用include选择表的一部分,c#,wpf,entity-framework,C#,Wpf,Entity Framework,我有一个包含许多字段的表,我只想得到几个单独的字段,我使用EF,并向查询中添加另一个表,如下所示 var Test= ve.Folders.Include("Hosting") .Where(a => a.Collateral!= true) .AsEnumerable() .Select(p => new {

我有一个包含许多字段的表,我只想得到几个单独的字段,我使用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.\u Name)没有任何值查询不起作用 很多尝试都尝试过,但都没有结果(当我询问而没有选择时很有趣,一切都很好)


提前感谢您的帮助

需要注意的一点是,在本例中,在调用
AsEnumerable
之后,
选择
没有什么好处,因为表中的所有数据仍然是从数据库中查询的(不仅仅是您指定的字段)

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

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

旁注,.Where(a=>a.Collateral!=true)应该是正确的。Where(a=>!a.Collateral)@Jonesy Right,thankstry with
sName=p.Hosting=空?p.Hosting.\u Name:string.Empty
@2kay No它不存在work@Damith你的答案和另一个答案都很好,谢谢你们