[C#] Entity Framework 첨삭 및 트랜잭션 작업

8233 단어
1. 객체 추가
            DbEntity db = new DbEntity();
            // , , ( ), , NULL( )
            var user = new User
                {
                    Name = "bomo",
                    Age = 21,
                    Gender = "male"
                };
            db.User.Add(user);
            db.SaveChanges();

2. 대상을 삭제한다. 대상을 삭제하려면 키만 있으면 된다.
            DbEntity db = new DbEntity();
            // , 5 
            var user = new User {Id = 5};

            // 
            db.User.Attach(user);
            //
            db.User.Remove(user);
            ////db.Entry(user).State = EntityState.Deleted;
            db.SaveChanges();

3. 객체 수정
방법1:
            DbEntity db = new DbEntity();
            // , : , NULL 
            var user = new User
                {
                    Id = 5,
                    Name = "bomo",
                    Age = 21,
                    Gender = "male"
                };
            // 
            db.User.Attach(user);
            // Modified
            db.Entry(user).State = EntityState.Modified;
            db.SaveChanges();

방법2: 방법1에서 매번 모든 필드를 수정해야 하는데 효율이 낮고 번거롭다. 다음은 일부 필드를 수정하는 것을 소개한다.
            DbEntity db = new DbEntity();
            // , : , NULL 
            var user = new User
                {
                    Id = 5,
                    Name = "bomo",
                    Age = 21
                };
            // 
            db.User.Attach(user);
            
            // user , 
            var setEntry = ((IObjectContextAdapter) db).ObjectContext.ObjectStateManager.GetObjectStateEntry(user);
            // Name Age 
            setEntry.SetModifiedProperty("Name");
            setEntry.SetModifiedProperty("Age");

            db.SaveChanges();

4, 사용 사무: 사용 사무는 매우 간단합니다. 필요한 조작을 TransactionScope에 놓고 마지막에 제출합니다.
            DbEntity db = new DbEntity();
            using (var scope = new TransactionScope())
            {
                // 
                var user1 = new User
                {
                    Name = "bomo",
                    Age = 21,
                    Gender = "male"
                };
                db.User.Add(user1);
                db.SaveChanges();
                
                var user2 = new User
                {
                    Name = "toroto",
                    Age = 20,
                    Gender = "female"
                };
                db.User.Add(user2);
                db.SaveChanges();

                // 
                scope.Complete();
            }

5. 조회: 조회는 LinQ를 통해 조회한다
            DbEntity db = new DbEntity();
            // 
            var user = db.User.Where(u => u.Name == "bomo").Select(u => new {Id = u.Id, Name = u.Name, Age = u.Age}).FirstOrDefault();
            // FirstOrDefault, First, Single, ToList, ToArray 

조회는 기본적으로 모두 LinQ의 내용으로 내용이 좀 많으니 다음에 총결산하겠습니다
 

좋은 웹페이지 즐겨찾기