2017-05-05 2 views
1

How to use the managed client for Azure Mobile Apps은 EF에서 사용하는 POCO 클래스가 아닌 테이블 엔티티에서 작동하는 것 같습니다. 우리는 UWP로 포팅을 시도하는 비즈니스 애플리케이션을 가지고 있습니다. 우리는 복잡한 관련 데이터를 가지고 있으며 객체 그래프에서 여러 엔티티를 편집하고 dbContext.SaveChanges()를 사용하여 유지할 수 있습니다. 그러나 참조 된 문서는 표 단위로 저장된 변경 내용을 보여줍니다.Azure 모바일 서비스 오프라인 동기화를 Entity Framework Core와 함께 사용할 수 있습니까?

EF 코어 중 하나를 선택하거나 Azure 모바일 서비스 오프라인 동기화를 사용해야합니까? Azure 모바일 서비스 오프라인 동기화와 함께 사용되는 EF 코어를 보여주는 샘플 코드가 있습니까?

답변

1

우리는 복잡한 관련 데이터를 가지고 있으며 객체 그래프에서 여러 엔티티를 편집하고 dbContext.SaveChanges()로 유지할 수 있습니다. 그러나 참조 된 문서는 표 단위로 저장된 변경 내용을 보여줍니다.

오프라인 컨텍스트에서 테이블 간의 관계를 구현하고 여러 테이블을 동시에 업데이트하려는 것 같습니다. 내가 아는 한, 여러 테이블을 동시에 업데이트하는 것은 오프라인 동기화 환경에서 작동하지 않습니다. Chapter 3 - Data Access and Offline Sync/Relationships을 참조하십시오.

Azure 모바일 앱은 오프라인 컨텍스트에서 사용되는 경우 작업 테이블을 가지고 있습니다. 테이블에 대해 각 조작을 수행하면 조작 테이블에 항목이 작성됩니다. 그런 다음 작업 테이블을 모바일 백엔드로 재생하여 원격 데이터베이스의 변경 사항을 적용합니다. 그러나 이것은 동시에 데이터베이스 내의 여러 테이블을 갱신 할 수있는 트랜잭션을 가지고 있지 않다는 영향을줍니다. 각 테이블의 각 레코드는 개별적으로 업데이트됩니다. 오프라인 동기화에서 사용하는 푸시 프로세스는 테이블 간의 관계가 작동하는 방식에 중대한 영향을줍니다. 특히, 단방향 관계 만 오프라인 동기화 세계에서 작동합니다.

+1

감사합니다 - MSFT하지만 EF 코어는 푸른 모바일 서비스 오프라인 동기화와 함께 사용할 수 있습니까? – Vague

1

내 연구에서 추측 할 수있는 것으로부터, mobileservicesqlitestore와 dbcontext 간의 통합은 완료되지 않았습니다 ... 그렇습니다! 이러한 컨텍스트 둘 다 프레임 워크에 POCO를 등록해야합니다.

는 EF 들어 POCO는

변하지 추적, 내비게이션 특성 등의 장점에 대한 EF 의해 (또는 그것이 POCO로부터 유래 한) "관리"가되도록 DBSet 같은 DBContext 내에 등록되어야 MobileServiceSQLLiteStore는 테이블이 두 개의 서로 다른 목적에 사용되는 두 개의 서로 다른 프레임 워크입니다

var store = new MobileServiceSQLiteStore"localsync.db"); 
store.DefineTable<TodoItem>(); 

를 통해 오프라인 동기화에 등록되어 있습니다. EF (EF 코어를 통해)는 모바일 장치 (안드로이드, UWP 및 IOS (아직 - 아직 없음))에서 데이터를 관리하는 데 가장 선호되는 방법입니다. MobileServiceSQLStore는 POCO를 관리하여 변경 사항을 관리하기 위해 수행중인 변경 사항을 기록하지만 객체 그래프의 복잡성은 처리 할 수 ​​없습니다.

IMO, 일어날 필요가있는 것은 CRUD 활동을 위해 EF 이벤트에 연결하는 것입니다. 이것은 EF 그래프의 주요 변경 사항을 추적하고 컨텍스트에서 저장이 완료 될 때까지 유지하는 것입니다. SAVE가 발생하면 이러한 변경 사항이 열거되고 기본 공급자 인 SQLLite, SQL Server 등에서 실행됩니다.

EF의 CRUD 작업을 수행하는 MobileServiceSQLStore provider가 필요합니다. MobileServiceSQLStore의 요구 사항을 참고하십시오.

내가하고 싶은 일 ...하지만 먼저 MobileServiceSQLStore에 익숙해 져야합니다 ...

저는 완전한 대답이 아니며 100 % 정확하지 않을 수도 있지만 1) 유효성 검사가 진행 경로인지, 2) 돕는 데 관심이있는 사람.

더 EF에 대한 공급자를 만드는 방법에 대한 URL : 정보 @Fred 한에 대한

https://blog.oneunicorn.com/2016/11/11/so-you-want-to-write-an-ef-core-provider/

https://docs.microsoft.com/en-us/ef/core/providers/writing-a-provider

+0

@codputer. 이것은 EF Core repo [로컬 및 원격 데이터베이스 간의 온라인/오프라인 동기화 지원] (https://github.com/aspnet/EntityFramework/issues/4645)에서 논의됩니다. – Vague

관련 문제