【问题标题】:Creating Classes using Entity data model使用实体数据模型创建类
【发布时间】:2011-01-31 22:52:06
【问题描述】:

我是实体框架的新手..我必须设置我们的项目解决方案..我正在努力根据我们的数据库创建所有类..

有没有办法使用实体数据模型创建类?

我尝试使用 PCOCO,但我不知道如何自定义它。我得到了 .tt 文件和子类;所有这些类属性也包含外键关系。如何获得没有任何关系的普通类?

请提供一种根据数据库中的表创建类的方法.. 否则我必须手动创建所有 .cs 文件..我的数据库中有 50 多个表..手动创建所有这些类真的很痛苦......

请告诉我,一旦我得到这些类,如何将这些业务访问层类转换为 DAL 类...他们是否可以编写一个全局类或方法来进行映射...

【问题讨论】:

    标签: .net linq entity-framework c#-4.0


    【解决方案1】:

    打开生成代码的 tt 模板,然后简单地删除所有引用导航属性的语句。

    【讨论】:

      【解决方案2】:

      使用实体数据模型(设计器)并选择从数据库更新(从设计器的上下文菜单中)。如果你想在你的类中使用Foreign keys columns,不要忘记选中“在模型中包含外键列”。在 EDMX 属性窗口中关闭自动生成并添加 POCO 模板。 POCO 模板将完全按照 EDMX 文件中的定义创建类。因此,如果您不想要导航属性,则必须从 EDMX 设计器中手动删除所有这些属性。但我建议不要这样做。如果你这样做,你会失去很多 EF 的力量。如果你想这样做,你可能目前还没有完全理解 EF 和 ORM。

      【讨论】:

      • 哦..谢谢..是的,你是对的..我对 EF 不是很熟悉..请您推荐我任何可以很好地解释 EF 的教程或网站..并给我对如何使用生成的类文件有一些建议……如果我将所有这些类移到业务层,那么它们将成为业务对象并且不再有实体……我必须找到一种方法将所有这些属性转换或映射到实体属性..
      • 我推荐这本书:Programming Entity Framework 2nd edition。它是您需要的确切信息来源。
      【解决方案3】:

      您可能不想创建类,因为 EF 会为您创建。您始终可以使用部分类扩展类,也可以使用 System.ComponentModel.DataAnnotations 命名空间中的数据注释。

      请参阅 Scott Guthrie 的博客(在 asp.net mvc 的上下文中,但概念可以在其他地方使用)http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx 特别是“但是如果我们使用图形工具进行 ORM 映射怎么办?”部分。

      【讨论】:

        猜你喜欢
        • 2018-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-17
        • 2014-04-16
        • 1970-01-01
        • 2010-10-25
        • 2017-08-10
        相关资源
        最近更新 更多