0

我正在尝试使用 MVVM Light 和 SQL Server CE 作为数据库来创建一个 WP7 应用程序。为此,我使用 sqlmetal.exe (1) 生成了一个数据上下文。

如果我在手机上运行该应用程序,这可以正常工作。但是当试图显示设计时数据时,我无法DataContext在我的设计时代码中创建一个实例。这可以做到吗?我尝试的另一种方法是创建一个实例Table<MyDataObject>,但 System.Data.Linq.Table 没有构造函数。

所以我的问题是,是否有可能以某种方式DataContext从代码创建我的实例,或者是否有另一种方法可以在不丢失设计时数据的情况下与我的数据库交互。

(1) 实际上,我使用了一种不同的方法,使用库项目能够直观地设计并将设计器文件复制到我的 WP7 项目中。如果我是正确的,结果是一样的。

4

1 回答 1

0

经过多次失败的尝试,我无法找到一种以编程方式模拟DataContext对象的方法。所以我以不同的方式解决了我的问题。

我创建了一个服务接口来从数据库中查询数据。对于 SQL CE 数据库中的每个表,我必须手动创建一个函数。

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

在实际数据对象中,传递了相应的表。在设计时对象中,我在代码中创建对象并返回IQueryablevia AsQueryable()。通过使用IQueryable,我确保查询保持优化(在本例中为 Linq2Sql)。

虽然这不太理想并且需要更多的手动代码编写,但我设法让设计时数据再次工作。

于 2012-09-23T10:04:47.413 回答