Asp.net mvc 3 请向我解释实体框架asp.net
到目前为止,我一直在使用带有Linq to Sql的MVC3,以便所有模型都已预生成,我将自己创建数据库,然后将表移动到dbml编辑器上,如果我想更改表,我将删除编辑器上的实体并再次拖动它。它工作得非常好,但我注意到微软在EF方面做了很多工作,我可能也应该了解这一点 所以,读了一些文章后,我完全困惑了。我想从代码优先的方法开始,据我所知,这使开发人员首先为实体创建模型,然后模型创建数据库。这里最令人困惑的是,当我更改模型时,以及在运行时将我的模型与实体进行比较时,如果它确定两者不相同,它会删除所有表并重新创建它们。如果是这样的话,我如何持久化我的数据?我如何存储我所有的桌子,这样它们就不会掉下来?我应该使用“数据库优先”的方法吗 请帮忙。谢谢 如果它确定这两个表不相同,则会删除所有表和 重新创建它们 默认情况下,您将获得一个异常。您必须明确指示应用程序删除并重新创建数据库。 我没有EF代码优先的经验(只有db优先),但我不喜欢在生产环境中删除和重新创建数据库。在开发过程中,这应该是好的 如何保存数据 使用 更多链接: 如果它确定这两个表不相同,则会删除所有表和 重新创建它们 默认情况下,您将获得一个异常。您必须明确指示应用程序删除并重新创建数据库。 我没有EF代码优先的经验(只有db优先),但我不喜欢在生产环境中删除和重新创建数据库。在开发过程中,这应该是好的 如何保存数据 使用 更多链接:Asp.net mvc 3 请向我解释实体框架asp.net,asp.net-mvc-3,entity-framework,Asp.net Mvc 3,Entity Framework,到目前为止,我一直在使用带有Linq to Sql的MVC3,以便所有模型都已预生成,我将自己创建数据库,然后将表移动到dbml编辑器上,如果我想更改表,我将删除编辑器上的实体并再次拖动它。它工作得非常好,但我注意到微软在EF方面做了很多工作,我可能也应该了解这一点 所以,读了一些文章后,我完全困惑了。我想从代码优先的方法开始,据我所知,这使开发人员首先为实体创建模型,然后模型创建数据库。这里最令人困惑的是,当我更改模型时,以及在运行时将我的模型与实体进行比较时,如果它确定两者不相同,它会删除所
默认情况下,如果您的模型与数据库不匹配,Code first只会引发异常。听起来您已经创建(并设置)了一个“删除或重新创建”初始值设定项(IDatabaseInitializer),这将导致数据库的强制重新生成。您可以构建不同类型的初始值设定项,其中一个是EF 4.3.1中新增的,允许删除和重新创建。默认情况下,如果您的模型与数据库不匹配,则Code first将仅引发异常。听起来您已经创建(并设置)了一个“删除或重新创建”初始值设定项(IDatabaseInitializer),这将导致数据库的强制重新生成。您可以构建不同类型的初始值设定项,其中一个是EF 4.3.1中新增的,允许删除和重新创建。您完全正确地看待实体框架,而不是Linq to Sql。微软将重点放在EF上,这才是前进的方向。实体框架有三个选项:
- 数据库优先
- 模型优先
- 代码优先
在开发环境中,可能最容易在每次模型更改时删除和创建数据库。您还可以使用一些初始测试数据为数据库种子。在生产环境中,您将使用代码优先迁移在每次模型更改时迁移数据库,以便保留数据 您完全正确地看到了实体框架,而不是Linq To Sql。微软将重点放在EF上,这才是前进的方向。实体框架有三个选项:
- 数据库优先
- 模型优先
- 代码优先