지난 시간에 이어 테이블에 엔터티를 추가, 삭제, 업데이트 처리에 해당되는 코드를 작성해

보고 살펴 보도록 하겠습니다.

 

프로젝트와 코드는 지난 시간에 살펴 본 Storage 라이브러리를 사용하여 테이블 생성 한

부분을 이어서 하도록 하겠습니다.

지난 번 테이블 생성 예제와 같이 정리하는 차원에서 전체 소스에 대해서 살펴보도록 하겠습니다.

다음 소스는 간단히 테이블 생성, 엔터티 추가, 변경, 삭제에 대한 버튼 컨트롤을 추가하는 예제 코드입니다.

 

1. [Default.aspx 소스]

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebRole1.Create" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

        <asp:Button ID="BtnCreateTable" runat="server" onclick="BtnCreateTable_Click"

            Text="테이블생성" />

   

    </div>

    <p>

        <asp:Button ID="BtnCreateEntity" runat="server" onclick="BtnCreateEntity_Click"

            Text="엔터티추가" />

    </p>

    <p>

        <asp:Button ID="BtnUpdateEntity" runat="server" onclick="BtnUpdateEntity_Click"

            Text="엔터티값변경" />

    </p>

    <p>

        <asp:Button ID="BtnDeleteEntity" runat="server"

            onclick="BtnDeleteEntity_Click" Text="엔터티삭제" />

    </p>

    </form>

</body>

</html>

 

 

 

2. Default.aspx.cs 에서 Page_Load() Storage 계정과 서비스 컨텍스트를 통해 테이블 서비스의

   EndPoint 와 인증 처리를 합니다.

private StudentServiceContext ServiceContext = null;

private CloudStorageAccount StorageAccount = null;

 

protected void Page_Load(object sender, EventArgs e)

{

StorageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("DataConnectionString"));

ServiceContext = new StudentServiceContext(StorageAccount.TableEndpoint.ToString(), StorageAccount.Credentials);

}

 

 

“DataConnectionString” 은 테이블 서비스 연결에 대한 연결 문자열 입니다.

Azure 프로젝트에서 롤 서비스의 [속성] - [설정] 에서 지정 합니다.

테이블서비스서비스롤속성.png

 

Windows Azure 저장소 에뮬레이터 사용을 클릭하고 확인을 누릅니다.

UseDevelopementStorage = true

로컬에 설치 개발 스토리지 에뮬레이터를 사용한다는 의미 입니다.

테이블서비스저장소에뮬레이터사용.png

Default.aspx.cs 엔터티 추가

protected void BtnCreateEntity_Click(object sender, EventArgs e)

{

// RowKey = 1, PartitionKey = 1 값을 가진 엔터티 추가

var newEntity = new StudentModel

{

RowKey = "1",

PartitionKey = "1",

userid = "algorizm",

name = "Stronger",

telno = "123-1234",

age = 20

};

 

ServiceContext.AddObject(StudentServiceContext.TableName, newEntity);

ServiceContext.SaveChanges();

 

Response.Write("Added Entity!");

}

 

익명 변수로 StudentModel 클래스의 인스턴스를 생성 추가할 Entity 속성을 지정합니다.

추가시 ServiceContext AddOject() 메서드 호출 SaveChanges() 메서드를 호출하면

저장소에 반영 됩니다.

 

Default.aspx.cs 엔터티 업데이트

protected void BtnUpdateEntity_Click(object sender, EventArgs e)

{

//추가한 RowKey = 1, PartitionKey = 1 해당되는 엔터티를 업데이트

var studentContext = new StudentServiceContext(StorageAccount.TableEndpoint.ToString(), StorageAccount.Credentials);

var entity = (from Item in ServiceContext.StudentTable

where Item.PartitionKey == "1" && Item.RowKey == "1"

select Item).First();

 

entity.telno = "000-0000";

entity.name = "ReName";

 

ServiceContext.UpdateObject(entity);

ServiceContext.SaveChanges();

 

Response.Write("Updated Entity!");

}

 

ServiceContext LINQ 사용해서 해당 Entity 얻은 다음 변경 속성을 지정한 다음

UpdateObject() ---> SaveChanges() 메서드를 호출하면 반영 됩니다.

 

Default.aspx.cs 엔터티 삭제

protected void BtnDeleteEntity_Click(object sender, EventArgs e)

{

//추가한 RowKey = 1, PartitionKey = 1 엔터티를 삭제

var studentContext = new StudentServiceContext(StorageAccount.TableEndpoint.ToString(), StorageAccount.Credentials);

 

var entity = (from item in studentContext.StudentTable

where item.PartitionKey == "1" && item.RowKey == "1"

select item).First();

 

studentContext.DeleteObject(entity);

studentContext.SaveChanges();

 

Response.Write("Deleted Entity!");

}

 

삭제 시에도 ServiceContext 통해 저장소에 해당 Entity 얻은 다음 삭제 Object

지정해 SaveChanges() 메서드를 호출하면 삭제 됩니다.

 

[결과화면]

엔터티추업삭화면.png

  

조회 기능은 ASP.NET Grid 이용해서 간단하게 바인딩 해서 표시해 주면 됩니다.

한번 해보세용~~

 

var studentContext = new StudentServiceContext(StorageAccount.TableEndpoint.ToString(), StorageAccount.Credentials);

this.GridView.DataSource = studentContext.StudentTable;

this.GridView.DataBind();

 

 

 

TableServiceContext 클래스 참조

http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storageclient.tableservicecontext.aspx

 

TableServiceEntity 클래스 참조

http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storageclient.tableserviceentity.aspx

 

 


Azure - 클라우드 컴퓨팅 - 시리즈 강좌 리스트
[Azure강좌] 1. 클라우드와 원도우 애저 소개
[Azure강좌] 2. SDK 설치와 Azure 무료 신청
[Azure강좌] 3. ASP.NET(Web Role) Hello World
[Azure강좌] 4. 프로젝트 패키지 Azure 배포
[Azure강좌] 5. Windows Azure Storage 서비스와 계정 설정
[Azure강좌] 6. 테이블 서비스와 StorageClient 라이브러리 #1
[Azure강좌] 7. SQL Azure 소개와 서버 구성
[Azure강좌] 8. 데이터베이스 생성과 SSMS 사용
[Azure강좌] 9. SQL Azure 마이그레이션 위자드 사용하기
[Azure강좌] 10. SQL Azure 방화벽 설정
[Azure강좌] 11. SQL Azure Manage 툴 사용해 보기
[Azure강좌] 12. 테이블 서비스와 StorageClient 라이브러리 #2
[Azure강좌] 13. SQL Azure ASP.NET GridView 바인딩
[Azure강좌] 14. Blob 서비스와 Container
[Azure강좌] 15. Blob 리스트 조회, 업로드 다운로드 예제
[Azure강좌] 16. 웹사이트 콘텐트 Blob 스토리지 이용
[Azure강좌] 17. Windows Azure CDN 설정
[Azure강좌] 18. Queue 서비스와 생성, 삭제, 메타데이터 추가
[Azure강좌] 19. Queue 의 메시지 피킹 및 가져오기, 추가, 삭제
[Azure강좌] 20. [Tip] SQL Azure 방화벽 룰 설정 예제 애플리케이션



Azure - 클라우드 컴퓨팅 - 동영상 참고 자료

[Azure 동영상 강좌] 1. 클라우드와 원도우 애저 소개 (애저 포털 둘러보기) 

[Azure 동영상 강좌] 2. SDK 설치와 Azure 무료 신청
[Azure 동영상 강좌] 3. ASP.NET(Web Role) Hello World
[Azure 동영상 강좌] 4. 프로젝트 패키지 Azure 배포
[Azure 동영상 강좌] 5. Windows Azure Storage 서비스와 계정 설정
[Azure 동영상 강좌] 6. 테이블 서비스와 StorageClient 라이브러리 #1
[Azure 동영상 강좌] 7. SQL Azure 소개와 서버 구성
[Azure 동영상 강좌] 8. 데이터베이스 생성과 SSMS 사용
[Azure 동영상 강좌] 9. SQL Azure 마이그레이션 위자드 사용하기
[Azure 동영상 강좌] 10. SQL Azure 방화벽 설정
[Azure 동영상 강좌] 11. SQL Azure Manage 툴 사용해 보기
[Azure 동영상 강좌] 12. 테이블 서비스와 StorageClient 라이브러리 #2
[Azure 동영상 강좌] 13. SQL Azure ASP.NET GridView 바인딩
[Azure 동영상 강좌] 14. Blob 서비스와 Container
[Azure 동영상 강좌] 15. Blob 리스트 조회, 업로드 다운로드 예제
[Azure 동영상 강좌] 16. 웹사이트 콘텐트 Blob 스토리지 이용
[Azure 동영상 강좌] 17. Windows Azure CDN 설정
[Azure 동영상 강좌] 18. Queue 서비스와 생성, 삭제, 메타데이터 추가
[Azure 동영상 강좌] 19. Queue 의 메시지 피킹 및 가져오기, 추가, 삭제
[Azure 동영상 강좌] 20. [Tip] SQL Azure 방화벽 룰 설정 예제 애플리케이션





profile

안녕하세요. 이호엽 입니다!

ASP.NET 프론티어 

블로그: algorizm.tistory.com