개발 이야기/ORM2012. 4. 15. 12:30

Entity Framework - Entity CRUD

이번에 알아 볼 내용은 Entity Framework의 실지적인 Entity CRUD입니다저희가 데이터를 가져와서 데이터를 생성하고 조회하고 수정하고 삭제하고!!!! 개발에 필수적으로 필요한 작업인데요이번에 엔티티를 가지고 와서 작업을 해보는 것을 살펴보겠습니다.

 

Entity 조회(Select)

엔티티 조회하는 것은 이미 앞 세션에서 설명을 들였습니다반복학습이 될거라 생각됩니다우선Northwind 데이터베이스를 연결하겠습니다.

06_01.jpg

[그림 6-1] DB 연결

 

저희가 간단히 CRUD기능을 살펴볼 예정이니 테이블 하나만 선택하겠습니다. Shippers 테이블을 선택해주세요!

06_02.jpg

[그림 6-2] 테이블 선택

 

자 엔티티를 가져왔다면 데이터를 조회하는 코드를 작성해보겠습니다개체 컨텍스트를 가져와서 그리드뷰에 뿌려줍니다컨텍스트에서 Shippers 엔티티를 조회하면 됩니다코딩은 간단하죠?

 

        private void btnSelect_Click(object sender, EventArgs e)

        {

            using (var context = new NorthwindEntities())

            {

                dataGridView1.DataSource = context.Shippers;

            }            

        }

 

 

06_03.jpg

[그림 6-3] 조회화면


Entity 수정(Update)

다음은 엔티티 수정입니다수정하려는 데이터를 조회해서 해당 엔티티 속성들 값을 수정합니다수정 후에 데이터베이스에 반영이 되려면 최종적으로 SaveChanges 메서드를 호출해줘야 합니다. SaveChanges는 데이터 소스인 데이터베이스와 엔티티 컨텍스트 사이에서 모든 업데이트 내용을 유지하면 추적 기능을 제공하고 있습니다.

 

        private void btnUpdate_Click(object sender, EventArgs e)

        {

            using (var context = new NorthwindEntities())

            {

                var shipper = context.Shippers.Where(p => p.ShipperID == 1).First();

                shipper.CompanyName = shipper.CompanyName + "_Modify";

                shipper.Phone = "(503) 555-9839";

                context.SaveChanges();

 

                dataGridView1.DataSource = context.Shippers;

            }

        }

 

 

06_04.jpg

[그림 6-4] 수정버튼 후 화면

 

Entity 추가(Insert)

엔티티 추가입니다. Shippers 엔티티 구조를 먼저 살펴보겠습니다. ShipperID 컬럼이 자동 증가입니다데이터 추가시에는CompanyName, Phone 컬럼의 데이터만 매핑해주면 됩니다.

CREATE TABLE [dbo].[Shippers](

       [ShipperID] [int] IDENTITY(1,1) NOT NULL,

       [CompanyName] [nvarchar](40) NOT NULL,

       [Phone] [nvarchar](24) NULL,

 CONSTRAINT [PK_Shippers] PRIMARY KEY CLUSTERED

(

       [ShipperID] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [PRIMARY]

 

GO

 

Shippers 객체를 하나 생성해서 데이터를 매핑해줍니다컨텍스트 AddObject메서드를 통해서 Shippers 엔티티 데이터를 생성합니다데이터베이스 반영을 위해서는 SaveChanges 메서드를 꼭 출해줘야 합니다.!

 

        private void btnCreate_Click(object sender, EventArgs e)

        {

            using (var context = new NorthwindEntities())

            {

                Shippers addEntity = new Shippers();

                addEntity.CompanyName = "jiseon Company2;

                addEntity.Phone = "(02) 111-9999";

                context.Shippers.AddObject(addEntity);

                context.SaveChanges();

 

                dataGridView1.DataSource = context.Shippers;

            }

        }

 

 

06_05.jpg

[그림 6-5] 엔티티 생성 후 화면

 

Entity 삭제(Delete)

마지막으로 엔티티 삭제입니다.^^ 엔티티 수정과 마찬가지로 특정 데이터를 조회해서 컨텍스트DeleteObject에 삭제 엔티티를 할당합니다. SaveChanges 메서드를 호출하면 실제 데이터베이스에서 해당 데이터가 삭제됩니다.

 

        private void btnDelete_Click(object sender, EventArgs e)

        {

            using (var context = new NorthwindEntities())

            {

                var shipper = context.Shippers.Where(p => p.ShipperID == 6).First();

                context.DeleteObject(shipper);

                context.SaveChanges();

 

                dataGridView1.DataSource = context.Shippers;

            }

        }

 

 

06_06.jpg

[그림 6-6] 삭제 후 화면

 

엔티티를 조회하고 수정신규생성삭제하는 것을 살펴보았습니다생각보다 코드는 간단했지요~ 단순 조회성이 아닌 비지니스 로직이 추가되는 작업일 경우에는 꼭 SaveChanges 메서드를 호출해줘야 데이터베이스에 반영이 된다는 것만 잊지않으면 됩니다.! 감사합니다.^^

소스 파일 : EF4.06.zip


sqler에 아티클 작성 했던것을 공유합니다.

출처 : http://www.sqler.com/400541

Posted by 사나에