从实体框架数据库优先切换到代码优先
我们的解决方案目前基于Entity Framework Database First。 我们有一个T4模板,可以从EDMX生成存储库类。
我们正在审查我们计划的发布更改的方法,尤其是数据库更改。 如果我们首先继续使用数据库,那么我们将需要单独生成脚本来更改开发和其他数据库。
看起来,使用Code First,我们只需更改模型并生成脚本来更改各种数据库。 这看起来更直接,不涉及手工编写脚本过程和降低风险。
所以,如果我们进行切换,是否仅仅是一个例子:
最后我们如何看待模型之间的关系? 有没有创建图表的方法?
谢谢,
克里斯
这是我过去做过的事情。 随着时间的推移,我尝试了许多不同的方法 目前,我正在使用EF Reverse Poco Generator来允许对数据库进行更改,并反映在代码中并最初生成Model / Poco类。 我也可以手动更改现有的类。 然后我为每次更改生成迁移。
代码优先模型允许定义与现在相同的导航属性,因此您可以通过代码和工具查看关系,从而可视化类关系。
如果您想查看数据库结构,则可以使用MS Sql中的“数据库图表”功能(如果这是您正在使用的功能)。 我的印象是,鼓励您使用实体框架本身以外的工具来可视化数据库或类关系。 这允许EF团队专注于数据库代码,而不是与VS进行复杂的UI集成。
我个人依靠数据库图来检查我的类结构和他们输出的数据库,但我觉得看看波科类是很自然的。 我还没有找到任何特殊的班级绘图工具。
所有这些都说了,你在你的陈述中是正确的。 虽然我会从EF Reverse Poco从现有数据库生成的类开始,为您提供更大的灵活性。 将T4指向那些使用反射而不是XML解析的类(请看T4 Toolbox进行输出文件管理)以帮助您入门。
在开始时,反映在装配上是一个棘手的问题。 您需要确保已编译EF / Poco程序集,以便它可以加载到内存中,并在T4中反映出来。 在极少数情况下,根据加载程序集的方式,可能会停止刷新程序集,因此必须重新启动VS. 我每个月都会遇到几次这样的事情,所以这对我来说不是一个难题。 一旦我把它启动并运行,它就有意义了。
链接地址: http://www.djcxy.com/p/90217.html上一篇: Switch from Entity Framework Database First to Code First