0

MVVM Light 및 SQL Server CE를 데이터베이스로 사용하여 WP7 응용 프로그램을 만들려고합니다. 이것을 달성하기 위해 sqlmetal.exe (1)를 사용하여 datacontext를 생성했습니다.혼합 성을 유지하면서 wp7 망고에서 linq2sql 데이터베이스를 어떻게 사용할 수 있습니까?

내 휴대 전화에서 애플리케이션을 실행해도 문제가 없습니다. 그러나 디자인 타임 데이터를 표시하려고 할 때 디자인 타임 코드에 DataContext의 인스턴스를 만들 수 없습니다. 이 작업을 수행 할 수 있습니까? 내가 시도한 또 다른 방법은 Table<MyDataObject>의 인스턴스를 만드는 것이지만 System.Data.Linq.Table에는 생성자가 없습니다.

내 질문에 어떻게 든 내 DataContext 코드에서 인스턴스를 만들거나 디자인 타임 데이터를 잃어버린없이 내 데이터베이스와 인터페이스 할 수있는 또 다른 방법입니다.

(1) 실제로 라이브러리 프로젝트를 사용하여 시각적으로 디자인하고 디자이너 파일을 WP7 프로젝트에 복사 할 수있는 다른 방법을 사용했습니다. 내가 옳다면 같은 결과가 나온다.

답변

0

많은 실패한 시도 후에 프로그래밍 방식으로 DataContext 개체를 조롱하는 방법을 찾지 못했습니다. 그래서 나는 내 문제를 해결하는 다른 방법으로 그것을했다.

데이터베이스에서 데이터를 쿼리하기 위해 서비스 인터페이스를 만들었습니다. SQL CE 데이터베이스의 모든 테이블에 대해 수동으로 함수를 만들어야했습니다.

public interface IPayDataService { 
    IQueryable<Account> GetAccounts(); 
    IQueryable<User> GetUsers(); 
    IQueryable<PayEntry> GetEntries(); 
} 

실제 데이터 개체에는 해당 테이블이 전달됩니다. 디자인 타임 개체에서 코드에서 개체를 만들고 을 AsQueryable() 통해 반환하십시오. IQueryable을 사용하여 쿼리가 최적화 된 상태인지 확인합니다 (이 경우 Linq2Sql).

이상적이지 않고 수동 코드 작성이 더 필요하지만 설계 시간 데이터를 다시 가져올 수있었습니다.