【问题标题】:Entity Framework 6 - client application .net framework 4?实体框架 6 - 客户端应用程序 .net 框架 4?
【发布时间】:2014-03-20 15:03:25
【问题描述】:

目前我们正在运行 EF v4.3。服务器本身和客户端机器都安装了 .net framework 4.0。

应用层被拆分为不同的解决方案文件,因此我们可以针对不同的 .net 框架进行处理

应用程序的客户端版本设置为在 .net framework 4.0 上运行

我们希望将 Entity Framework 升级到版本 6。由于我们可以控制我们的服务器,我们可以轻松地升级它们上的 .net 框架,但我们不能做的是从 4.​​0 升级客户端 PC 上的 .net 框架

我可以有一个为 .net 4.0 构建但通过 WCF 与 Entity Framework 6 通信的客户端吗?如果是这样,我需要注意哪些限制?

【问题讨论】:

  • EF6 可以与 .NET 4.0 一起使用。
  • 如果您在针对 .net 4.0 的同一个项目中使用 EF6,那么您只能获得 EF4.3 中可用的 EF 功能 - 我想知道是否可以跨 WCF 使用不同的项目我在服务器端使用 EF6 的新功能,在客户端使用 .Net 4.0

标签: .net entity-framework


【解决方案1】:

客户端通过 WCF 与使用 EF6 的服务器通信应该不会有任何问题。如果您至少在模型中使用 POCO 类 - 这样您就不需要在客户端中引用 EF。

我通常会在我的数据模型类和我传输到/从客户端接收的视图类之间强制分离,因此当您从服务器中的数据库中提取实体时,手动创建一个视图类并将其传递给 wcf 而不是直接访问您的模型,这样模型可以更改而不会对您发布的界面产生任何影响,并且客户端无法访问他们不应该访问的字段(ID 字段等)。

也意味着:

  1. 您的数据合同可以根据您提供的方法的确切意图进行定制
  2. 您不必担心将发送/接收的实例分离/重新附加到数据上下文中

【讨论】:

  • 我们正在使用 POCO,因此看起来很适合升级到 EF6。关于通过 WCF 传递视图类的有趣想法 - 我将不得不更详细地研究它以更好地理解
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-24
  • 2021-04-29
  • 1970-01-01
  • 2015-02-28
  • 2010-10-24
  • 2014-07-21
  • 1970-01-01
相关资源
最近更新 更多