2012-06-21 185 views
0

我将创建一个由2个模块组成的应用程序。ASP MVC 3服务器端WP7客户端应用程序

  • 基于asp mvc 3服务的服务器端。这应该是从一个sql server数据库提供数据到一堆WP7客户端。
  • 客户端在WP7上。这个应该从服务器检索数据并将其存储在本地数据库中。

我想这两个应用程序只有一组模型是个好主意,我想使用实体框架。

我考虑了以下方法:

把这些2个项目上的一个解决方案。在服务器端应用程序生成实体框架模型形成一个SQL Server数据库。在两个应用中都使用它们。

服务器上的服务应该使用模型来检索数据,并将它们作为oData xml返回。 WP7应用程序应该抓住这个oData XML并使用相同的模型将其存储在本地数据库中。

我从来没有做过类似的事情,所以我不确定是否是一个好方法。它会起作用吗?任何评论赞赏。

编辑

我已经有一个工作服务返回的数据。我还创建了一个抓取数据的测试SL应用程序。我使用服务器应用程序中的实体框架模型。下一步是创建一个WP7应用程序,将数据抓取到实体框架模型(与之前提到的SL应用程序相同)。

在这里你可以看到我是如何通过服务创造的读取方面:

svc = new BlogContext(new Uri("/BlogService.svc", UriKind.Relative)); 
var q = svc.Blogs; 

但仍有我不知道如何解决问题。如何创建一个上下文来写入WP7本地数据库?

+0

持久实体对象在一个单独的服务器?据我记得,这实际上是不可能的... –

+0

@JeremyHolovacs不,这不是我的意思。我只想让这两个项目共享相同的模型类并通过oData服务发送“对象”。 – gisek

回答

0

是的,它可以工作;我在我的一个应用程序中做了非常类似的事情(尽管交换了一个JSON/OAuth API的oData)

+0

我更新了问题。你可以看看吗? – gisek

0

您可能想使用类似Project Linker的东西来获得多目标解决方案,因为库不能在Silverlight (WP7)和服务器(.NET)。

坚持使用POCO类,并专门使用EF POCO类模板。仅在服务器上使用EF模型。我不认为你可以在Silverlight中使用DataAnnotations,所以你可能需要推出自己的验证。