Silverlight 클라이언트와 내 DomainService간에 느슨하게 결합 된 모델을 사용하고 있습니다. EF와 함께 POCO를 사용 중입니다.상속 된 DbContext를 사용할 때 변경 내용이 저장되지 않습니다.
툴링이 제공하는 스캐 폴딩을 사용하지 않습니다. 나는 다음이 업데이트 방법
public partial class MyDomainService : DbDomainService<MyContext>
{
...
}
:로
DomainService 클래스는 선언
public UpdatePerson(PersonInfo source)
{
var person = DbContext.People.Find(source.Id);
person.Name = source.Name;
DbContext.SaveChanges();
}
하지만 수동으로 변경 저장되지 않습니다 데이터베이스를 검사 할 때. 내가 같이 할 수있는 코드를 수정하지만 경우 --- 모두 괜찮 : 나는 내 자신의 로컬 컨텍스트 변수를 만드는 상관없는 가정
public UpdatePerson(PersonInfo source)
{
using(var context = GetDbContext())
{
var person = context.People.Find(source.Id);
person.Name = source.Name;
context.SaveChanges();
}
}
,하지만 내부적으로 무슨 일이 일어나고 있는지 궁금 그 첫 번째 방법은 효과가 없습니다.
감사합니다. 나는 DbDomainservice를 "작동하도록 설계된"방식으로 사용할 때 모든 눈을 감 으려고합니다.하지만 제한이 있습니다. 데이터베이스에서 UI 로의 실제 엔티티 간소화를 실제로 수행 할 수는 없습니다. 이것이 제가이 접근법을 채택한 이유입니다. 나는 더 큰 두통에 빠지기 쉽다 "시스템을 버킹"? –
예, 여전히 문제가있을 수 있습니다. 내가 줄 수있는 가장 좋은 대답은 http://blogs.msdn.com/b/kylemc/archive/2011/08/18/unit-testing-a-wcf-ria-domainservice에서 Kyle McClellan의 Unit Testing 시리즈를 살펴 보는 것입니다. -part-1-the-idomainservicefactory.aspx 그는 IRepository를 사용하는 방법을 보여줍니다. DomainService를 올바르게 사용하고 IRepository 뒤에있는 귀하의 limirations를 숨기면 나는 당신이 더 나은 경험을 할 수 있다고 생각합니다. –
@ColinBlair DomainService는 invoke 메서드에서 작동하도록 어떻게 설계 되었습니까? 그것들은 진부한 논리의 일부가 아니며 이후에 어떤 형태의 제출 (컨텍스트 또는 어쩌면 DomainService에서)을 호출하지 않으면 컨텍스트가 저장되지 않습니다. – John