Silverlight/Tips
WCF RIA Service에서 DomainService에 기본 Method 4종을 추가하는 Code Snippet
길버트리
2010. 2. 4. 19:43
실버라이트 개발자 여러분 안녕하세요!
DomainService를 만들어서 잘 사용하고 있다보면 신규 테이블을 추가하게 되는 순간이 있습니다.
그러면 ADO.NET Entity Data Model (*.edbx)을 Update Model from Database하는 것만으로
Proxy Class는 생성은 성공입니다.
하지만! 이미 사용하고 있던 DomainService에 새 테이블에 대한 기본 CRUD 메서드들은
손쉽게 추가해 줄 방법은 없습니다.
기본 CRUD 메서드
그래서 새 Domain Service를 만들어서 사용하거나,
새 Domain Service를 만들어서 생긴 4가지 기본 메서드를 기존 Domain Service로
Copy & Paste하는 방법으로 가게됩니다. 하지만 귀찮죠.
그래서 손쉽게 사용할 수 있는 Code Snippet을 하나 만들어 보았습니다.
Shortcut은 dsm이니 활용하세요.
Usage : dsm [tab] [tab]
Download
Example
DomainService를 만들어서 잘 사용하고 있다보면 신규 테이블을 추가하게 되는 순간이 있습니다.
그러면 ADO.NET Entity Data Model (*.edbx)을 Update Model from Database하는 것만으로
Proxy Class는 생성은 성공입니다.
하지만! 이미 사용하고 있던 DomainService에 새 테이블에 대한 기본 CRUD 메서드들은
손쉽게 추가해 줄 방법은 없습니다.
기본 CRUD 메서드
public IQueryable<Something> GetSomethings()
public void InsertSomething(Something something)
public void UpdateSomething(Something currentSomething)
public void DeleteSomething(Something something)
public void InsertSomething(Something something)
public void UpdateSomething(Something currentSomething)
public void DeleteSomething(Something something)
그래서 새 Domain Service를 만들어서 사용하거나,
새 Domain Service를 만들어서 생긴 4가지 기본 메서드를 기존 Domain Service로
Copy & Paste하는 방법으로 가게됩니다. 하지만 귀찮죠.
그래서 손쉽게 사용할 수 있는 Code Snippet을 하나 만들어 보았습니다.
Shortcut은 dsm이니 활용하세요.
Usage : dsm [tab] [tab]
Download
Example
public IQueryableGetSomethings() { return this.ObjectContext.Something; } public void InsertSomething(Something something) { if ((something.EntityState != EntityState.Added)) { if ((something.EntityState != EntityState.Detached)) { this.ObjectContext.ObjectStateManager.ChangeObjectState(something, EntityState.Added); } else { this.ObjectContext.AddToSomething(something); } } } public void UpdateSomething(Something currentSomething) { if ((currentSomething.EntityState == EntityState.Detached)) { this.ObjectContext.AttachAsModified(currentSomething, this.ChangeSet.GetOriginal(currentSomething)); } } public void DeleteSomething(Something something) { if ((something.EntityState == EntityState.Detached)) { this.ObjectContext.Attach(something); } this.ObjectContext.DeleteObject(something); }