【问题标题】:Materialize entities from SqlDataReader从 SqlDataReader 实现实体
【发布时间】:2009-10-29 10:57:46
【问题描述】:

是否可以从标准 SQL 数据读取器中实现(在实体框架内)实体?

我正在编写使用 EntityConnection.StoreConnection 传递给服务器的特定 SQL。 Thsi 返回一个标准的数据读取器,其中包含应作为实体具体化的行。

我想一种解决方法是创建一个可以运行我的任意 SQL 的实体返回函数导入,但我想知道是否有更简洁的方法?

问候

【问题讨论】:

  • 如果您解释了为什么要这样做,将会有很大帮助。如果您的目标只是编写自定义 SQL,那么我不会这样做。
  • 嗨 Craig 是的,它是编写自定义 SQL。我们有自己的特定领域语言来查询实体,我们需要将其翻译成 SQL。我首先考虑使用 Entity-SQL,但是它会创建非常复杂的 SQL,因此我的意图是生成 SQL。李

标签: .net entity-framework


【解决方案1】:

如果要为实体结果指定自定义 SQL,则应使用 defining query (see also)(由 EF 支持,但 GUI 设计器不支持,至少在 v1 中)或 stored proc .

更新:在 EF v4 中,you can use ExecuteStoreQuery<T> 并免费获得任意实体的具体化。

【讨论】:

  • 该方法存在两个问题:1) 我必须创建一种新类型的实体 - 我想创建我已经拥有的类型的实体化实体。 2) 看起来我无法动态指定定义查询
  • 您可以将 SQL(或其片段)传递给 proc。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-07
  • 2012-03-13
  • 1970-01-01
相关资源
最近更新 更多