Tag: linq expressions

将几个类似的SELECT表达式组合到一个表达式中

如何将几个相似的SELECT表达式组合成一个表达式? private static Expression<Func> CombineSelectors(params Expression<Func>[] selectors) { // ??? return null; } private void Query() { Expression<Func> selector1 = x => new AgencyDTO { Name = x.Name }; Expression<Func> selector2 = x => new AgencyDTO { Phone = x.PhoneNumber }; Expression<Func> selector3 = x => new AgencyDTO { Location = x.Locality.Name }; Expression<Func> selector4 […]

如何撰写Linq表达式? 即Func <Exp <Func >,Exp <Func >,Exp <Func >>

我正在创建一个Validator类。 我正在尝试为我的validation器实现Linq SelectMany扩展方法,以便能够使用Linq查询组合表达式,并在基础值发生更改时validation最终结果。 以下测试代码演示了我的意图。 var a = 2; var b = 3; var va = Validator.Create(() => a, n => n >= 0 && n b, n => n >= 0 && n < 5); var vc = from ia in va from ib in vb select ia + ib; Debug.Assert(vc.Value == a + b); […]

如何在另一个Expression中的单个对象上重用Expression

我觉得我错过了一些简单的东西,但是我没有找到回答我问题的文档。 我最近将一些linq投影分解为可重用的表达式。 它在集合上运行时效果很好,但我似乎无法弄清楚如何将表达式应用于另一个表达式中的单个对象。 以下是我要完成的一个示例: public class Person { public string ID { get; set; } public string Name { get; set; } } public class PersonDto { public string ID { get; set; } public string Name { get; set; } } public class Department { Person Manager { get; set; } List Employees { […]

不能使用三元运算符来分配Linq表达式

我只输入以下代码: Expression<Func> expression = fileTypeGroupID.HasValue ? n => n.Document.MimeType.FileTypeGroupID == fileTypeGroupID.Value : n => true; Visual Studio说它无法推断出n的类型。 代码对我来说似乎很好 – 它只是使用三元运算符将两个Expression文字中的一个指定给Expression变量。 Visual Studio是不是很聪明,无法推断出三元运算符中的n类型,还是我犯了某种错误?

通用DbDataReader到List 映射

我的属性绑定数据访问类有一个小问题(更像是烦恼)。 问题是当读取器中没有列中的相应属性时映射失败。 码 这是mapper类: // Map our datareader object to a strongly typed list private static IList Map(DbDataReader dr) where T : new() { try { // initialize our returnable list List list = new List(); // fire up the lamda mapping var converter = new Converter(); while (dr.Read()) { // read in each row, […]