2012-12-23 56 views
0

我使用EF 5.0代码优先开发具有多个关系数据库表的应用程序。这很有效,直到我尝试添加没有任何关系的表格(独立)。我需要一些这些参考/查找表在我的数据库。我就像其他人一样对我的类进行编码,但是EF似乎忽略了它们,并没有创建它们。有什么我需要告诉EF这些应该建立为独立?怎么样?任何指导非常感谢。EF 5.0代码优先独立表

+3

你是如何告诉EF有关这些表格的?你为他们添加了映射吗?或者为你的上下文中的这些实体创建了DbSet属性? –

+0

他们没有映射,但我仍然需要创建DbSet属性,我没有这样做。这固定了它。如果您回复为答案,我会选择您的回复。谢谢。 – user1626137

回答

1

要让EF创建一个表,您需要在您的DbContext中有一个DbSet<T>,假设您拥有此表,它将创建表。

对此的一个解释就是,如果你有一个外键不属于你的内容,那么EF也将承担其数据库的一部分并创建它。我认为这是你所看到的行为。

+0

我没有在上下文中添加DbSet 问题。它现在创建表格。谢谢大家。 – user1626137

0

EF对“独立”表不应有任何限制。

当你建立EF表一次,额外的变化将不得不跟着Context类的

  • 更新(的DbContext子类)
  • 将迁移脚本(生成API调用将与新更新的数据库表等)
  • 更新数据库(运行迁移脚本)。

你可以找到真正好的教程here

+0

您能否澄清“不应该”或“不”,并指出我可以在哪里验证?另外,我在开发过程中使用DropCreateDatabaseAlways作为我的初始化程序,所以不需要迁移。 – user1626137

+0

在我看来,EF **不会对“独立”表格有任何限制。我一直在几个项目中使用EF 5(带有“独立”表),并且从来没有像您一样遇到任何问题(尤其是当您使用DropCreateDatabaseAlways数据库初始化时)。但是,我用**不应该**,因为也许你遇到了一个错误。也许在描述中加入更多的代码会给我们一些线索。 – Tom

+0

你是对的。正如Luke在上面指出的,我没有在上下文中输入DbSet 。谢谢你的帮助。 – user1626137