【问题标题】:Mapping tables using Entity Data Model使用实体数据模型映射表
【发布时间】:2013-03-06 17:50:15
【问题描述】:

我是实体框架的新手。我已经有现有的数据库。我设法映射我的数据库表并生成 c# 类,但我有几个问题。

  1. 有没有办法将几个表的代码生成到单个文件中? 拥有与用户相关的课程对我很有帮助 单个文件。
  2. 我的下一个问题是从数据库更新模型。当我 更改数据库中字段的名称并更新模型我有新字段 刷新后添加的。不幸的是旧领域仍然 保留在我的实体中,我必须手动将其删除。

    有没有办法告诉 VS 从实体中删除这些无效字段?

谢谢!

【问题讨论】:

    标签: c# .net database entity-framework


    【解决方案1】:

    1) 您的实际代码文件是从 t4 模板生成的。您可以使用任何您想要生成它们的模板。为此,请右键单击 .edmx 文件中的画布并选择“添加代码生成项”。它将向您的项目添加几个 *.t4 文件。 nuget 包管理器中有一些可用的模板。您甚至可以手动编辑它们(尽管它们非常难以理解)

    2) 从数据库更新模型时,您可以删除整个表,然后重新添加。

    另外,看看“代码优先”的方法。您基本上创建了一堆 poco 类,然后将 DbContext 子类化:

    public class MyContext : DbContext
    {
        public DbSet<MyEntity> MyEntities { get; set; }
        public DbSet<MyCoolEntity> MyCoolEntities { get; set; }
        /* ... */
    }
    

    不需要 .edmx 文件。实体框架将为您处理数据库。

    【讨论】:

    • 感谢您的回答。我已经尝试过代码优先的方法,但我的模型可能会更改很多次,因为我最近开始开发我的应用程序。当我尝试对更改的模型执行某些操作时,这会导致错误。我也知道代码优先数据迁移,但我还没有尝试过。
    • 如果您喜欢,请将我的回答标记为已接受。 Code first 支持Migrations,让您可以无缝更新数据库
    猜你喜欢
    • 1970-01-01
    • 2016-08-31
    • 2022-08-14
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多