Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用实体数据模型映射表_C#_.net_Database_Entity Framework - Fatal编程技术网

C# 使用实体数据模型映射表

C# 使用实体数据模型映射表,c#,.net,database,entity-framework,C#,.net,Database,Entity Framework,我不熟悉实体框架。我已经有了现有的数据库。我设法映射了我的数据库表并生成了c#类,但我有几个问题 有没有办法将几个表的代码生成到单个文件中? 这将是非常有帮助的,我有,即用户相关的类中 单个文件 我的下一个问题涉及从数据库更新模型。当我 更改数据库中字段的名称并更新模型I有新字段 这是在刷新后添加的。不幸的是,老油田仍然存在 保留在我的实体中,我必须手动删除它 是否有任何解决方案可以告诉VS从实体中删除这些无效字段 谢谢大家! 1)您的实际代码文件是从t4模板生成的。您可以使用任何要生成它们的模

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

  • 有没有办法将几个表的代码生成到单个文件中? 这将是非常有帮助的,我有,即用户相关的类中 单个文件
  • 我的下一个问题涉及从数据库更新模型。当我 更改数据库中字段的名称并更新模型I有新字段 这是在刷新后添加的。不幸的是,老油田仍然存在 保留在我的实体中,我必须手动删除它

    是否有任何解决方案可以告诉VS从实体中删除这些无效字段

  • 谢谢大家!

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

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

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

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

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

    谢谢您的回答。我已经尝试过代码优先的方法,但是我的模型可能会改变很多次,因为我最近开始开发我的应用程序。当我尝试使用更改的模型执行某些操作时,这会导致错误。我也知道代码优先的数据迁移,但我还没有尝试过。如果您喜欢,请将我的答案标记为已接受。Code first支持无需查看即可更新数据库