1

我创建了一个 helloworld 应用程序。在服务器端,有一个由实体框架和 WCF 数据服务生成的模型类。在我的 WP7 应用程序中,我添加了对该服务的引用。它允许我做这样的事情:

DataServiceCollection<Blogs> blogs;
BlogContext svc; // this class was generated with the model class by EF
Uri uri = new Uri("http://localhost:9430/BlogService.svc/");
svc = new BlogContext(uri);
blogs = new DataServiceCollection<Blogs>(svc);

这只是抓取博客。现在我想使用我上面使用的相同类(博客、博客上下文)将这些博客放入本地数据库。如果模型发生变化,它可以帮助我修复 2 个不同的类。我怎样才能做到这一点?请准确地说,我是WP7的新手。

4

2 回答 2

0

首先,我建议不要尝试保留从 WCF 服务接收到的相同类,而是将它们映射到手机上的模型。

如果您计划使用SQLCE,则需要创建模型并标记它们以告诉 EF 它们如何映射到您的数据库。尝试使用部分类对 WCF 创建的东西执行此操作是可能的,但听起来会很痛苦。

SQL Compact Toolbox非常出色,一旦您的数据库模型完成,它就可以为您完成所有工作。在手机上使用 SQL CE 时,我通常结合使用 Server Explorer 和 SQL Compact Toolbox。

更新:使用可移植类库,您可以在项目之间共享 WCF DTO 库,但我仍然不会尝试使用 EF 属性标记它们。

于 2012-06-28T14:29:43.563 回答
0
  • 在服务器上有一个模型
  • 在客户端有另一个模型
  • 尝试将一个模型的对象映射到另一个模式的对象,例如使用AutoMapper

IE:

void Save(ServerBlog sb)
{
    using (var db = new LocalContext())
    {
        var clientBlog = new ClientBlog
        {
            Text = db.Text
            // or the same using AutoMapper
        };
        db.Blogs.Add(clientBlog):
    }
}
于 2012-06-28T14:45:26.363 回答