using System.Collections.Generic;
using System.Data.Entity;
using System.Linq.Expressions;
using System.Linq.Dynamic.Core;
public static void Main()
List<Customer> list = new List<Customer>();
Name = "Terri Lee Duffy",
City = new City() { Name = "Paris" },
Orders = new List<Order>()
new Order() { Date = DateTime.Today }
City = new City() { Name = "London", Number = 90 },
Orders = new List<Order>()
new Order() { Date = DateTime.Today.AddDays(-25) },
new Order() { Date = DateTime.Today.AddDays(-11) },
new Order() { Date = DateTime.Today.AddDays(-7) },
new Order() { Date = DateTime.Today }
Name = "Rebecca Bradley",
Orders = new List<Order>()
new Order() { Date = DateTime.Today.AddDays(-21) },
new Order() { Date = DateTime.Today.AddDays(-18) },
new Order() { Date = DateTime.Today.AddDays(-10) },
new Order() { Date = DateTime.Today.AddDays(-9) },
var example2 = list.AsQueryable()
.Where("np(City.Name.ToLower()) == \"paris\"")
.Where("np(Name) == \"Terri Lee Duffy\"")
FiddleHelper.WriteTable(example2);
string cityToSearch = "paris";
var example3 = list.AsQueryable()
.Where("np(City.Name.ToLower()) == @0", cityToSearch)
FiddleHelper.WriteTable(example3);
var example4 = list.AsQueryable()
.Where("!np(City.Name.ToLower(), \"\").Contains(@0)", "london")
FiddleHelper.WriteTable(example4);
var example5 = list.AsQueryable()
.Where("np(City.Number) >= @0", 90)
FiddleHelper.WriteTable(example5);
var example6 = list.AsQueryable()
.Where("np(City.Name) != null")
.Select("new {Name, new {City.Name as name} as City}")
FiddleHelper.WriteTable(example6);
public int CustomerID { get; set; }
public string Name { get; set; }
public string CompanyName { get; set; }
public City City { get; set; }
public string Phone { get; set; }
public List<Order> Orders { get; set; }
public int OrderID { get; set; }
public DateTime Date { get; set; }
public string Name { get; set; }
public int? Number {get; set; }