Raven.Server.exe.config에서 낙관적 동시성을 true로 설정하는 방법이 있습니까? 아니면 데이터베이스 수준에서 어떻게 든 적용될 수 있습니까? RavenDB의 사이트에, 나는 몇이 UseOptimisticConcurrency이 = 사실 설정의 언급 볼 수 있지만,이 코드 내에서 세션 수준에서의 것 같습니다 :Config에 RavenDB UseOptimisticConcurrency가 있습니까?
public void Save<T>(T objectToSave)
{
using (IDocumentSession session = Database.OpenSession())
{
session.Advanced.UseOptimisticConcurrency = true; // This is the setting
Guid eTag = (Guid)session.Advanced.GetEtagFor(objectToSave);
session.Store(objectToSave, eTag);
session.SaveChanges();
}
}
내가 그것을 그 설정이 어딘가에 서버 전체에 존재하는지 알고 싶습니다 따라서 코드의 각 세션마다 지정할 필요가 없습니다.
편집 : 위의 코드는 다음 오류를 생성합니다. 편집 2
... 이유를 찾으려고 : 좋아, 내가 진행 상황을 만들고있어. 개체를 검색하고 같은 세션 내에서 을 GetEtagFor()를 호출하면, 유효한 eTag를 얻을 수 있습니다. 그래서 내 주요 질문은 지금 : 클라이언트 UI 내에서 세션을 사용하여 응용 프로그램이 시작될 때 한 번 세션을 열고 마지막에 닫으려면 올바른 방법이 있습니까? 그리고 ... eTag를 저장하는 올바른 방법은 무엇입니까? 위에 코딩 된 방식으로, eTag는 저장하기 직전에 검색됩니다. 잘못된 방법이라고 생각합니다. 개체를 처음 검색 할 때 eTag를 검색해야한다고 생각합니다. 그러나 원래 객체 목록을 가져 왔을 때 각 객체를 반복해야하고 GetEtagFor()를 호출해야합니까? 올바르게 보이지 않습니다 ...
개체를로드/쿼리 한 동일한 세션에 개체를 저장해야합니까? 그리고 그 링크가 세션 관리에 대한 정보를 표시하는 곳을 모르겠습니다. –
그건 그렇고, 나는 이것을 발견했다. 어쩌면 이것은 게시 한 링크와 유사합니다. http://msdn.microsoft.com/en-us/magazine/ee819139.aspx –