gpt4 book ai didi

entity-framework-5 - 我可以在 EF5 中使用 MODEL-FIRST 而不会丢失 DB 中的数据吗?

转载 作者:行者123 更新时间:2023-12-01 06:37:52 25 4
gpt4 key购买 nike

我想知道模型优先的方法。我希望使用 VS2012 中的模型设计器设计一个新数据库。模型设计器的新功能,如着色和拆分模型部分非常棒。希望除了最初创建新数据库之外,使用模型设计器还有其他用途。

我想执行以下步骤...

  • 使用模型设计器,可视化设计并推送模型,创建初始数据库和表
  • 向表中添加数据
  • 对模型设计器中的表格进行更改(例如添加字段)
  • 将更改推送到数据库(即更新数据库)
  • 不要从第 2 步中丢失我的数据。另外,只是为了消除任何混淆......我是否提到我不想丢失数据?

  • 请告诉我这个明显的需求(即需要在不丢失数据的情况下从头开始改进表及其字段)在 EF 的第五次迭代中没有被忽视。

    EF 上的这个页面 ( http://msdn.microsoft.com/en-us/data/ee712907.aspx) 表明开发人员在先编码和先建模之间有平等的选择。对我来说,页面上的介绍视频给人留下了类似的印象。

    如果有一个简单的菜单选项或者更好但只是一种在模型更改时建立“自动推送到数据库”的方法,那就太好了。这样,无论何时进行更改并单击“保存”按钮,都会出现一个对话框“更新数据库?”。

    我看到使用代码优先有一个迁移选项。我似乎无法找到相同的模型优先。而且我不明白为什么这不可能……毕竟我用代码优先编写的所有代码确实存在 - 它是由模型优先代码生成创建的。

    我一直在祈祷,希望有人能有一个简单的解决方案,也许我刚刚忽略了一些东西,而所有这些漫无边际/发泄都是徒劳的。 :-)

    最佳答案

    如果您想在模型更改时修改数据库,您确实必须使用代码优先。即便如此,这也不是什么神奇的自动化过程,但您必须编写更改脚本。

    使用模型优先,您的最佳选择是每次生成一个新数据库并使用 Redgate 的 SQL Compare 或 Visual Studio Sql Server Database Project 等工具创建更改脚本 (DDL)。 .

    我想补充一点,几乎不可能自动将数据库与模型同步。某些更改需要人工干预,例如删除字段和添加另一个字段无法与重命名/重新键入字段区分开来。一些更改可以在模型中轻松完成,但需要在 Sql Server 中使用表重建脚本(例如更改字段顺序),或者修改内容和结构的组合(例如,使字段不为空,添加外键)。

    关于entity-framework-5 - 我可以在 EF5 中使用 MODEL-FIRST 而不会丢失 DB 中的数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13324021/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com