using System.Collections.Generic;
using System.Data.Entity;
using System.Linq.Dynamic.Core;
public static void Main()
var context = new EntityContext();
int numberOfOrdersWhichHavePriceGreaterThan2 = context.Orders.Count("Price > 2");
Console.WriteLine("numberOfOrdersWhichHavePriceGreaterThan2 = {0}", numberOfOrdersWhichHavePriceGreaterThan2);
var usersWhoHaveTwoRoles = context.Users.Where("u => u.Roles.Count() == 2");
FiddleHelper.WriteTable(usersWhoHaveTwoRoles);
public static void GenerateData()
var orders = new List<Order>
new Order { Amount = 5, Price = 3 },
new Order { Amount = 10, Price = 8 },
new Order { Amount = 7, Price = 10.3 }
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.Orders.AddRange(orders);
context.Users.AddRange(users);
context.BulkSaveChanges();
public class EntityContext : DbContext
public EntityContext() : base(FiddleHelper.GetConnectionStringSqlServer())
public DbSet<Order> Orders { get; set; }
public DbSet<User> Users { get; set; }
public int Id { get; set; }
public int Amount { get; set; }
public double Price { get; set; }
public int Id { get; set; }
public string Name { get; set; }
public string CompanyName { get; set; }
public string City { get; set; }
public string Phone { 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; }
public int Value { get; set; }