2012-12-04 39 views
0

我已经通过Nuget在我的项目中包含了System.Linq.Dynamic库。以下是我的linq查询,如果我使用类型字段在select中返回,它可以正常工作。但是使用System.Linq.Dynamic我应该可以使用select的字符串值。我跟踪了我发现的例子,但是我从select中得到的所有内容都是字符串本身。 我错过了什么?使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();  

回答

0

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

即 。选择(“new(ID,Name)”);

(这工作)

航班吗

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

(这不起作用)

0

如果您要让select语句选择一个字符串,它不会返回这些字符串的值。如果你尝试没有引号,会发生什么?

我不精通C#,是一个VB恶魔,但你可以尝试这样的:

选择新建随着{.ID = n.ID,。公司= n.Company,...等}

这有道理吗?道歉,如果我误解了你的问题。

+0

通常情况下,这将是情况但如上所述,我正在使用System.Linq.Dynamic扩展,它允许我使用字符串进行选择。 –