public DepartmentViewModel() { DepartmentCommands = new DepartmentCommands(); using (WorkDbContext db = new WorkDbContext()) { Departments = new ObservableCollection <Department>(); foreach (var department in db.Departments) { Departments.Add(department); } Persons = new List <Person>(); foreach (var person in db.Persons) { Persons.Add(person); } } DepartmentCollectionView = CollectionViewSource.GetDefaultView(Departments); TemporarySelectedDepartment = new Department(); if (Application.Current.MainWindow != null) { int id = (Application.Current.MainWindow.DataContext as MainViewModel)?.NavigationId ?? 0; DepartmentCollectionView.MoveCurrentTo(Departments.FirstOrDefault(x => x.Id == id)); } }
public static void MultiBulkMerge <T1, T2, T3, T4>(this WorkDbContext dbContext, IList <T1> list1, IList <T2> list2, IList <T3> list3, IList <T4> list4) where T1 : class where T2 : class where T3 : class where T4 : class { dbContext.BulkMerge(list1, options => { options.InsertKeepIdentity = true; options.MergeKeepIdentity = true; options.InsertIfNotExists = true; }); dbContext.BulkMerge(list2, options => { options.InsertKeepIdentity = true; options.MergeKeepIdentity = true; options.InsertIfNotExists = true; }); dbContext.BulkMerge(list3, options => { options.InsertKeepIdentity = true; options.MergeKeepIdentity = true; options.InsertIfNotExists = true; }); dbContext.BulkMerge(list4, options => { options.InsertKeepIdentity = true; options.MergeKeepIdentity = true; options.InsertIfNotExists = true; }); }
GetUnique(this IList <Charger> chargers, WorkDbContext workDbContext) { var newChangers = chargers.Where(c => !workDbContext.Chargers.Any() || workDbContext.Chargers.Any(cDb => cDb.Id != c.Id)).ToList(); var address = newChangers.Select(c => c.AddressInfo) .Where(a => !workDbContext.ChargerAddresses.Any() || workDbContext.ChargerAddresses.Any(ca => ca.Id != a.Id)) .ToList(); var connections = newChangers.SelectMany(c => { c.Connections.ForAll(con => con.ChargerId = c.Id); return(c.Connections); }).Where(c => !workDbContext.ChargerConnections.Any() || workDbContext.ChargerConnections.Any(cc => cc.Id != c.Id)) .ToList(); var media = newChangers.SelectMany(c => { c.MediaItems.ForAll(con => con.ChargerId = c.Id); return(c.MediaItems); }).Where(m => !workDbContext.ChargerMedias.Any() || workDbContext.ChargerMedias.Any(cm => cm.Id != m.Id)) .ToList(); return(newChangers, address, connections, media); }
public ChargerService(IOpenChargeHttpClient openChargeHttpClient, WorkDbContext workDbContext, IMapper mapper, IBackgroundJobClient backgroundJobClient) { _openChargeHttpClient = openChargeHttpClient; _workDbContext = workDbContext; _mapper = mapper; _backgroundJobClient = backgroundJobClient; }
public async Task FilterWebPagesAsync() { // Arrange var options = new DbContextOptionsBuilder <WorkDbContext>() .UseInMemoryDatabase(databaseName: "FindSearches") .Options; // Act using (var context = new WorkDbContext(options)) { context.WebPages.Add(new WebPageEntity("My cat", "AAA", "AAA", "AAA", "Google")); context.WebPages.Add(new WebPageEntity("Her cats", "AAA", "AAA", "AAA", "Yandex")); context.WebPages.Add(new WebPageEntity("His dogs", "AAA", "AAA", "AAA", "Bing")); context.SaveChanges(); } // Assert using (var context = new WorkDbContext(options)) { var sut = new WebPageService(context); var result = await sut.GetWebPagesAsync("cat"); Assert.AreEqual(2, result.Count); } }
public async Task AddWebPageToDbAsync() { // Arrange var options = new DbContextOptionsBuilder <WorkDbContext>() .UseInMemoryDatabase(databaseName: "AddItemsToDb") .Options; // Act using (var context = new WorkDbContext(options)) { var sut = new WebPageService(context); await sut.AddWebPageAsync(new WebPage("Sample", "Sample", "Sample", "Sample", "Sample")); await context.SaveChangesAsync(); } using (var context = new WorkDbContext(options)) { Assert.AreEqual(1, context.WebPages.Count()); Assert.AreEqual("Sample", context.WebPages.Single().Title); } }
public OrderViewModel() { OrderCommands = new OrderCommands(); using (WorkDbContext db = new WorkDbContext()) { Orders = new ObservableCollection <Order>(); foreach (var Order in db.Orders) { Orders.Add(Order); } Persons = new List <Person>(); foreach (var person in db.Persons) { Persons.Add(person); } } OrderCollectionView = CollectionViewSource.GetDefaultView(Orders); TemporarySelectedOrder = new Order(); }
static void Main(string[] args) { using var db = new WorkDbContext(); // Linq 분류(2가지) // 1. 쿼리 구문 // from user in Users // where .... // select new ... // 2. 메서드 구문 // db.Users.Where().ToList(); // 1. SELECT 쿼리 // 1) DbSet<Login_infors> selectList = db.Login_infor; // 2) List<Login_infors> selectList = db.Login_infor.ToList().Where().OrderBy(); // 3) IEnumerable<Login_infors> selectList = db.Login_infor.AsEnumerable(); // 4) IQueryable<Login_infors> selectList = from Login_infors in db.Login_infor select Login_infors; // linq to Sql // IEnumerable vs IQueryable // Extension Query => 작성 가능 // 1. IEnumerable => 쿼리 => 데이터 => Client com => Slow // 2. IQueryable => 쿼리 => 데이터 => Server (메모리상에 있는 데이터를 가공) => Fast //var selectList = db.Login_infor.ToList(); //foreach (var item in selectList) //{ // Console.WriteLine(item.StaffName); //} // var user = new Login_infors{SeqId=4, StaffName="장길동"}; // 2. INSERT 쿼리 // db.Login_infor.Add(user); // db.SaveChanges(); // = insert, update, delete 실행 후 db에 반영 // commit // 3. UPDATE 쿼리 // db.Entry(user).State = EntityState.Modified; // db.SaveChanges(); // 4. DELETE 쿼리 // DELETE FROM USer WHERE UserId = 2; // var user1 = new Login_infors { SeqId = 2}; // db.Login_infor.Remove(user1); // db.SaveChanges(); // # .WHere(), OrderBy() // 1. .Where() -> 조건절 - > 리스트가 가능 // var list = db.Login_infor.ToList(); // SELECT * FROM Users WHERE UserId = 1 //var list1 = db.Login_infor.Where(i => i.CompanyName == "동천(주)"); //Console.WriteLine("시작"); //foreach (var user2 in list1) //{ // Console.WriteLine($"{user2.SeqId}.{user2.StaffName}"); //} // # 특정 데이터 1개 가져오기 // .First(), .FirstOrDefault(), .Single(), SingleOrDefault() //var user3 = db.Login_infor.First(u => u.CompanyName == "동천(주)"); //Console.WriteLine(user3.SeqId); // SingleOrDefault() vs FirstOrDefault() // SingleOrDefault() 권장. // # OrderBy() 1 2 3 4 5 6 // # OrderByDecending() 6 5 4 3 2 1 // var list2 = db.Login_infor.OrderBy(i => i.StaffName).ToList(); var list2 = from Login_infors in db.Login_infor join 출퇴근기록_집계표s in db.출퇴근기록_집계표 on Login_infors.StaffID equals 출퇴근기록_집계표s.StaffID where Login_infors.CompanyName == "동천(주)" select Login_infors; //.Include(u => u.출퇴근기록_집계표) //.Where(i => i.CompanyName == "동천(주)"); foreach (var user4 in list2) { Console.WriteLine($"{user4.SeqId}.{user4.StaffName}({user4.StaffID}, {user4.출퇴근기록_집계표s.기준일})"); } }
/// <summary> /// Initializes a new instance of the <see cref="GenegalCRUDRepository"/> class. /// </summary> /// <param name="context">Navi業務DBContext</param> /// <param name="httpContextAccessor">HttpContext</param> public CRUDRepository(WorkDbContext context) { _context = context; }
public GenericRepository(WorkDbContext db) { this._db = db; this.dbSet = _db.Set <T>(); }
public DbInitializerService(WorkDbContext context) { this.context = context; }
public BackgroundDbWorker(WorkDbContext workDbContext) { _workDbContext = workDbContext; }
public DepartmentController(ILogger <DepartmentController> logger, WorkDbContext db) { _logger = logger; _db = db; }
public EmployeesRepository(WorkDbContext db) : base(db) { }
public WorkUnitOfWork(WorkDbContext dbContext) : base(dbContext) { }
public EmployeeController(WorkDbContext context, IMapper mapper) { this.context = context; this.mapper = mapper; }
public LoginRepository(WorkDbContext context) { _context = context ?? throw new ArgumentNullException(nameof(context)); }
public ManagerController(WorkDbContext context) { this.context = context; }
public CompanyRepository(WorkDbContext context, IPropertyMappingService propertyMappingService) { _context = context ?? throw new ArgumentNullException(nameof(context)); _propertyMappingService = propertyMappingService ?? throw new ArgumentNullException(nameof(propertyMappingService)); }