SL4 MVVM RIA 기반 응용 프로그램을 처음 실행하면 다음 상황이 발생했습니다. SL 클라이언트에서 레코드 (EF4, NO-POCOS !!)를 업데이트하는 것처럼 보이지만 dbms의 값은 변경되지 않습니다. 피들러 디버깅 저장의 메시지는 (다른 사람의 사이에)입니다 :RIA 서비스 저장소 저장이 작동하지 않습니까?
EntityActions.nil의 b9http : //schemas.microsoft.com/2003/10/Serialization/Arrays^HasMemberChanges^Id^ OperationUpdate
나는 이것이 단지 다음과 같다고 가정한다. dbms는이 레코드에 대한 업데이트를 수행해야합니다. 맞습니까?
나는이 같은 일반적인 저장소를 사용하고 있습니다 :
[Update]
public void UpdateCulture(Culture currentCulture)
{
if (currentCulture.EntityState == System.Data.EntityState.Detached)
{
this.cultureRepository.Attach(currentCulture);
}
this.cultureRepository.Save();
}
내가 currentCulture - 엔티티가 분리되는 것을 알고
public class Repository<T> : IRepository<T> where T : class
{
IObjectSet<T> _objectSet;
IObjectContext _objectContext;
public Repository(IObjectContext objectContext)
{
this._objectContext = objectContext;
_objectSet = objectContext.CreateObjectSet<T>();
}
public IQueryable<T> AsQueryable()
{
return _objectSet;
}
public IEnumerable<T> GetAll()
{
return _objectSet.ToList();
}
public IEnumerable<T> Find(Expression<Func<T, bool>> where)
{
return _objectSet.Where(where);
}
public T Single(Expression<Func<T, bool>> where)
{
return _objectSet.Single(where);
}
public T First(Expression<Func<T, bool>> where)
{
return _objectSet.First(where);
}
public void Delete(T entity)
{
_objectSet.DeleteObject(entity);
}
public void Add(T entity)
{
_objectSet.AddObject(entity);
}
public void Attach(T entity)
{
_objectSet.Attach(entity);
}
public void Save()
{
_objectContext.SaveChanges();
}
}
DomainService 업데이트 방법
은 다음과 같다. 무엇이 나를 혼란스럽게합니까 (다른 것들 사이에서도) 이것은 _objectContext가 아직 살아 있습니까? (즉, 레코드에 변경된 사항을 "알 수"있음을 의미하므로 Attach()를 호출하고 Save()로 충분해야합니다!)!내가 무엇이 누락 되었습니까?
개발 환경 : VS2010RC - 엔티티 프레임 워크 4 (NO 포항 강판) 사전
또한 내 SL 클라이언트에서 일반 저장소를 만들고 싶습니다. 저에게 어떻게 할 수 있는지 보여 주시겠습니까? IObjectContext 인터페이스는 무엇을 의미합니까? 나는 DomainContext가 IObjectContext 등을 구현하지 않는다는 것을 알고 있습니다, 당신은 약간의 학습 자원을 제공 할 수 있습니까? 감사. – Shimmy