C# 数据库更改是否可以传播到代码优先模型

C# 数据库更改是否可以传播到代码优先模型,c#,database,entity-framework,orm,ef-code-first,C#,Database,Entity Framework,Orm,Ef Code First,我一直在我的数据库上实践代码优先的概念。由于我已经使用了比.NET代码开发更长的数据库,所以我倾向于总是考虑如何利用数据库的能力,所以我的标准实践总是首先是数据库,然后使用类似ORM的EF来生成DAL的上下文。 所以,如果这似乎是一个愚蠢的问题,请原谅。我已经习惯了使用代码迁移工具来创建主键和外键关系、定义主键等。这是一次很好的学习经验,但对于某些任务,我认为最好直接进入数据库并运行脚本。例如,创建检查约束、存储过程以实现代码中的函数等 所以我的问题是,如果我执行一项任务,比如在数据库中创建一个

我一直在我的数据库上实践代码优先的概念。由于我已经使用了比.NET代码开发更长的数据库,所以我倾向于总是考虑如何利用数据库的能力,所以我的标准实践总是首先是数据库,然后使用类似ORM的EF来生成DAL的上下文。 所以,如果这似乎是一个愚蠢的问题,请原谅。我已经习惯了使用代码迁移工具来创建主键和外键关系、定义主键等。这是一次很好的学习经验,但对于某些任务,我认为最好直接进入数据库并运行脚本。例如,创建检查约束、存储过程以实现代码中的函数等

所以我的问题是,如果我执行一项任务,比如在数据库中创建一个check约束,有没有办法将更改传播到代码优先模型?我知道updatemigration命令将强制将模型中的更改添加到数据库中,因此作为此方法的初学者,我想知道如何让代码首先接收数据库中的更改,而不是将更改推出

我这样问是因为我所学到的一切似乎都在强制执行“代码优先”这个术语,就好像当您开始在这种模式下开发时,如果需要的话,您无法反转逻辑

这是对的还是我只是错过了什么


此外,是否认为使用代码优先和EF是一种常见或合理的做法?似乎Code First提供了与EF相同的好处,因此它似乎是对代码的重复使用。

不,Code First实际上是Code First。事实上,这是我不愿意使用它的原因之一。有很多东西是先编写代码无法在数据库中创建的,我讨厌混合使用迁移代码和原始SQL。此外,我不知道当我们现在必须手动添加的功能稍后将被支持时会发生什么。你必须将它们添加到迁移历史记录中。谢谢你,格特。我有一种感觉,这将是一个答案,但只是不是绝对肯定,真的希望相反。谢谢你提供的信息。在这一点上考虑的所有事情,我将不得不把这一点归功于学习经验,我将回到数据库第一模型。