using System.Collections.Generic;
using System.Data.Entity;
using System.Linq.Dynamic.Core;
public static void Main()
IQueryable queryable = new[] { 1, 2, 2, 3 }.AsQueryable();
var distinctIntegerValues = queryable.Distinct();
FiddleHelper.WriteTable(distinctIntegerValues);
var context = new EntityContext();
var items = context.Customers
.Select("new (Name as CustomerName, Orders.Distinct() as UniqueOrders)");
foreach (dynamic item in items)
Console.WriteLine(item.CustomerName);
FiddleHelper.Dump(item.UniqueOrders);
public static void GenerateData()
var customers = new List<Customer>
Name = "Terri Lee Duffy",
Orders = new List<Order> { order1, order1, order2 }
var managerRole = new Role
var users = new List<User>
new User { Name = "Jack", Roles = new List<Role> { managerRole } },
new User { Name = "Mike", Roles = new List<Role> { managerRole, adminRole } }
using (var context = new EntityContext())
context.Customers.AddRange(customers);
context.Users.AddRange(users);
context.BulkSaveChanges();
public class EntityContext : DbContext
public EntityContext() : base(FiddleHelper.GetConnectionStringSqlServer())
public DbSet<User> Users { get; set; }
public DbSet<Customer> Customers { get; set; }
public DbSet<Location> Locations { get; set; }
public int CustomerID { get; set; }
public string Name { get; set; }
public string CompanyName { get; set; }
public string City { get; set; }
public string Phone { get; set; }
public Location Location { get; set; }
public ICollection<Order> Orders { get; set; }
public int Id { get; set; }
public string Description { get; set; }
public int Amount { get; set; }
public double Price { get; set; }
public int LocationID { get; set; }
public string Name { get; set; }
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Role> Roles { get; set; }
public int Id { get; set; }
public string Name { get; set; }