c# - Entity Framework 和可移植类库

标签 c# .net wpf entity-framework wcf

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

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

就像这里指定的一样:Entity Framework for Portable Class Library ,我收到以下错误:

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

这实际上是一个 Nuget 问题。 (http://nuget.codeplex.com/workitem/2978)。真正的原因是 Entity Framework 不再与 PCL 兼容。据我了解,Entity Framework 7 允许我这样做,但目前还不可能。

有人知道用这种配置与我的数据库通信的好方法吗?

最佳答案

这是我的解决方案:

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

这不是最好的解决方案,但在我等待 Entity Framework 7 时它是有效的。

关于c# - Entity Framework 和可移植类库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26876174/

相关文章:

C#注释技术/注释重用

c# - Process.HasExited 对当前进程是否成立?

.net - 从长远来看,受 RSA 保护的数据的安全性

wpf - 为什么在持久化的 WPF RichTextBox 中有自复制的大括号?

c# - 使用 C# 更改 "ClientSettingsSection"中的设置

c# - 如何使用属性表示Nest中的关键字数组

c# - 如何强制 LINQ to SQL 对可为空的外键执行 INNER JOIN?

javascript - Sencha Touch 和远程服务器上的身份验证

wpf - 遵循 MVVM 模式的自动完成文本框

c# - Wpf 从后面的代码更改可见性