我已经通过Nuget在我的项目中包含了System.Linq.Dynamic库。以下是我的linq查询,如果我使用在select中返回的类型字段,它可以正常工作。但是使用System.Linq.Dynamic我应该能够为select使用字符串值。我已经按照我发现的示例进行了操作,但是我从select中找到的只是字符串本身。 我错过了什么?
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();
答案 0 :(得分:0)
如果您告诉select语句选择一个字符串,它不会返回这些字符串的值。如果你试着没有引号会怎么样?
我不熟悉C#,是一个VB恶魔,但你可以尝试类似的东西:
选择New With {.Id = n.ID,.Company = n.Company,... etc}
这有意义吗?如果我误解了你的问题,请道歉。
答案 1 :(得分:0)
我的错误。我没有意识到扩展是如何工作的。我希望扩展能够在查询语法中工作,而实际上它只适用于方法语法。
即。 .Select(“new(ID,Name)”);
(这有效)
-vs -
选择(新(ID,姓名)“);
(这不起作用)