using System.Collections.Generic;
using System.Data.Entity;
using System.Linq.Dynamic.Core;
public static void Main()
var context = new EntityContext();
var defaultIfEmpty = context.Customers.Where("Name == \"not-found\"").DefaultIfEmpty();
FiddleHelper.Dump(defaultIfEmpty);
var users = context.Users.Select("Roles.Where(r => r.Name == \"Admin\").DefaultIfEmpty().FirstOrDefault()");
foreach (dynamic user in users)
public static void GenerateData()
var customers = new List<Customer>
Name = "Terri Lee Duffy",
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 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; }