0

我通过 Nuget 在我的项目中包含了 System.Linq.Dynamic 库。以下是我的 linq 查询,如果我使用要在选择中返回的类型字段,它可以正常工作。但是使用 System.Linq.Dynamic 我应该能够为选择使用字符串值。我遵循了我找到的示例,但我从选择中得到的只是字符串本身。我错过了什么?

var predicate = PredicateBuilder.False<Name>();
predicate = predicate.And(d => d.ID == "100053");
var results = from n in Names
                        .AsExpandable()
                        .Where(n=> n.ID=="100053")                            
                       join d in InstitutionDemographics on n.ID equals d.ID
                       join m in MemberAdhocIds on n.ID equals m.ID                           
                       join a in NameAddresses on n.BillingAddressNumber equals a.AddressNumber
                       join mas in MemberAdhocServices on n.ID equals mas.InstitutionID
select("new(n.ID,n.Company,n.MemberStatus,n.Email,n.MemberType,n.USCongress,n.FAX,n.County,d.NumberYearsAMember,d.Population,d.FederalReserveDistrict,d.FDICCertificateNumber,d.FRSID,d.ICBADistrictCode,d.UD_Minority_Type,d.MSA,d.NumberOfBranches,d.PubliclyTraded,d.SRAMemberships,d.Assets,d.RSU,d.FutureDues,d.InstitutionType,d.AgLoanPercentageTotal,m.CCRP,a.City,a.State,a.Address1,a.ZIP)");
                results.Dump();    
4

2 回答 2

0

如果您告诉 select 语句选择一个字符串,它不会返回这些字符串的值。如果您尝试不使用引号会发生什么?

作为一个 VB 恶魔,我不精通 C#,但您可以尝试以下方法:

选择新建 {.Id = n.ID, .Company = n.Company, ...etc}

那有意义吗?如果我误解了你的问题,我深表歉意。

于 2012-12-04T17:32:20.110 回答
0

我的错。我没有意识到扩展是如何工作的。我期待扩展在查询语法中工作,而实际上它只能在方法语法中工作。

即 .Select("new (ID,Name)");

(这有效)

-对-

选择(新(ID,名称)“);

(这不起作用)

于 2012-12-05T16:20:30.170 回答