实体框架&便携式类库

时间:2014-11-11 22:57:13

标签: c# .net wpf entity-framework wcf

我有一个包含WPF项目和Windows Phone项目的解决方案,它们都包含对包含我的模型和ViewModel的PCL的引用。我还有一个WCF项目,允许我调用一个通用的API。到目前为止它工作得很好。

现在我想使用Entity Framework与SQL数据库进行通信,以便我可以从我的ViewModel发出请求。我想过将我的模型从PCL移动到WCF项目,并将它们用作实体。这意味着在PCL中引用我的WCF项目。

就像在此处指定的那样:Entity Framework for Portable Class Library,我收到以下错误:

“无法添加对'System.ComponentModel.DataAnnotations'的引用。请确保它在全局程序集缓存中。”

这实际上是一个Nuget问题。 (http://nuget.codeplex.com/workitem/2978)。真正的原因是实体框架不再与PCL兼容。根据我的阅读,实体框架7将允许我这样做,但现在不可能。

有没有人知道使用此配置与数据库通信的好方法?

2 个答案:

答案 0 :(得分:1)

这是我的解决方案:

我的模型和ViewModel仍在我的PCL中定义。实体在WCF中定义。我在我的WCF中添加了一个类,它将实体转换为模型。一个接口,用于定义PCL中API的每个可用请求,我在每个平台中实现此接口。每个平台实现只调用WCF中定义的方法(这意味着我必须在每个平台中相同地实现每个请求)。我在WCF中使用我的转换类来返回模型而不是实体。

这不是最好的解决方案,但是在我等待Entity Framework 7时它可以正常工作。

答案 1 :(得分:0)

我通常将我的模型存储在服务层后面的wcf应用程序中。

因此,我的模型没有依赖UI dll。