2013-03-06 79 views
0

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

  1. 有什么办法可以为几个表生成单个文件的代码? 对于我来说,在 单个文件中包含与用户相关的类将非常有帮助。
  2. 我的下一个问题是指从数据库更新模型。当我 更改数据库中的字段名称和更新模型时,我有刷新后添加的新字段 。不幸的是老域仍然 仍然在我的实体,我不得不手动删除它。

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

谢谢!

回答

0

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文件。实体框架将为您处理数据库。

+0

谢谢你的回答。我已经尝试过Code First方法,但是我的模型可能会改变很多次,因为我最近开始开发我的应用程序。这会导致错误,当我尝试使用更改后的模型进行操作时。我也知道代码第一次数据迁移,但我还没有尝试过。 – Divh 2013-03-06 18:29:15

+0

如果您喜欢,请将我的答案标记为已接受。 代码首先支持[Migrations](http://msdn.microsoft.com/en-US/data/jj591621),它允许您无缝地更新数据库 – 2013-03-06 18:38:34