【问题标题】:Entity Framework: Modeling against an existing database scheme实体框架:针对现有数据库方案建模
【发布时间】:2010-11-09 20:18:16
【问题描述】:

我已经为此苦苦思索了一个多星期,但还没有得到任何结果:(我们有一个现有的遗留数据库,我正在尝试对我的实体进行建模。这些表非常臃肿,我们确实这样做了没有足够的带宽来创建新的优化表。所以我不得不使用我们已经拥有的东西。但是,我不想使用数据库公开的所有冗余列。我最初的计划是使用视图在我的模型中,但在文档很少的情况下看起来同样多毛。

现在,创建仅包含几列的模型的最佳方法是什么?我只需要一堆只读实体;因此,如果有一种方法可以忽略架构中的不可为空的列,那我就准备好了。我正计划使用 POCO,否则我认为我必须创建自己的映射。

更新: POCO 是指我想使用 ADO.NET POCO 实体生成器。

【问题讨论】:

  • 我建议使用 NHibernate,创建您自己的 POCO,并使用 Fluent-NHibernate 进行映射,然后只映射您想要的列。 IMO 您只是要求从(旧版)数据库架构构建/生成模型时遇到问题。

标签: entity-framework


【解决方案1】:

如何在数据库中创建视图,然后只将视图导入模型?

【讨论】:

  • 还有其他人尝试使用视图而不是表吗?我很想知道你的经历。
  • 你能详细说明一下这个问题吗?我在 EF 中使用了很多视图,并且效果很好...
  • 嗨史蒂夫,这是我昨天在论坛上发布的一个问题。 stackoverflow.com/questions/4129705/…
  • Steve,经过几天的反复试验,我终于能够仅使用视图创建模型。我想我只是需要一点耐心 :) Tenny 和 Hirani 的 EF 4 食谱书对我帮助很大。
【解决方案2】:

好吧,如果您只需要一堆实体并且它们在一段时间内不会发生太大变化,那么我会选择您需要的表,使用普通向导和所有列生成实体,然后删除所有在模型设计器中手动不需要列。

【讨论】:

  • 这样做的问题是,我们有很多不可为空的列,我真的不想查询并带回数据。即使我想要一个只读模型,EF 也会强迫我使用那些不知道在插入/更新的情况下该怎么做的列。
  • 另外,你如何定义关系?
  • 好的,现在我明白了真正的问题。这是我从来没有过的。也许你可以看看blogs.msdn.com/b/dsimmons/archive/2007/11/08/… - 但这看起来像很多手工......
  • 设计师不支持这个功能的事实有点违背了使用EF的目的:(
【解决方案3】:

将表添加到您的 EF,然后删除您不想要的属性。它只是不会映射那些数据库字段。

【讨论】:

    猜你喜欢
    • 2016-09-07
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2017-10-04
    • 2010-09-22
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多