【问题标题】:LINQ to entities ... without the entities (if possible)LINQ to entity ...没有实体(如果可能)
【发布时间】:2012-01-04 06:07:47
【问题描述】:

我知道这听起来很愚蠢,但我想做一些与众不同的事情......

基本上,我正在寻找在后端具有 wcf 数据服务(或至少类似的东西)的解决方案,它允许我使用简单的 url 语法查询我的数据库。

我遇到的问题是,当我的数据库架构发生更改时,我必须重新编译整个后端,这并不好,因为我正在构建的解决方案允许定义“实体”。

基本上我想要做的是每次数据库更新时都更新模型......作为一种触发事件。

我认为 EF 不会这样做,这导致了我的实际问题......

你会如何解决这个问题?

我需要 wcf 数据服务提供的开箱即用的功能……只是在它下面有一个更动态的数据模型。

【问题讨论】:

  • Linq 到没有实体的实体 = ...Linq?
  • 您可以使用一些代码生成器来创建 EDMX 或代码(代码优先场景)。但是使用它的代码仍然是硬编码的,需要更改,所以我不明白你的意思。
  • @Dani Linq 到没有实体的实体 = Linq to :)
  • lol yeh ... 想不出一个干净的方式来解释它,但本质上它的事实是你不能在运行时更改 EF 模型,这让我绊倒了
  • 您的数据库架构经常更改? :?

标签: c# wcf entity-framework wcf-data-services


【解决方案1】:

您需要将 O/RM 更改为更动态的东西......可以使用 Massive 之类的东西来代替 EF。

似乎有人正在用 WebWCF 做类似的事情...Massive with WCF Web Api to return dynamic types/Expandos?

如果您使用数据服务,那么您需要想办法将 Massive 表示为“DataContext”。另一方面,WebWCF 会在需要时将动态对象序列化为 JSON 或 XML 块。


您提出的方法的问题在于 Web 服务合同是动态的并且没有版本控制。这意味着如果您删除/重命名/更改一个字段,您实际上已经创建了对客户端用于使用 Web 服务的“合同”的更改。这可能会导致客户端崩溃,除非同时更新。

如果您正在寻找一种管理模型更改更新数据库的低摩擦方式,我发现 EF Code First 4.2 和 EF Migrations 对我来说非常有效。 0.7.0.1 相当稳定,可从 NuGet 获得。

【讨论】:

  • 有趣......我明白你的意思,但我有点用微软的方法来分享点......创建一个有数据库的应用程序并用他们自己的数据库构建其他应用程序,然后用户与之交互他们的创作......接受它更多的工作流类型场景而不是协作工具
  • 好的,我会再考虑一下 :)
  • 正是我想要做的事情
猜你喜欢
  • 2013-07-29
  • 2011-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-15
  • 1970-01-01
  • 2021-12-25
相关资源
最近更新 更多