顶者有分!Code First 共用数据库的问题。

cityhunter172 2012-11-28 05:33:13
前提:两项目都用 Code First,连接的是同一数据库。
问题:当一个项目执行 Update-Database ,会把另一个项目的 Table 全部 drop。

曾尝试过的步骤:
1、执行 Add-Migration 手动更新,将 DropTable 语句注释掉:两项目不能同时 Update-Database 成功,会提示有些 Table 已存在。

2、查看数据库,有个 dbo.__MigrationHistory,明白了两项目其实是共用了这个表,才出现混乱。将此表删除,问题也多多。


怎么样才能解决这个排他性?
不要告诉我,只能用不同的数据库登录名来限定,这不是我想要的答案。
...全文
633 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
gonelife 2013-08-10
  • 打赏
  • 举报
回复
我现在也遇到类似问题了,楼主最终如何解决的?
不懂必须要问 2013-03-26
  • 打赏
  • 举报
回复
不懂,小东西来的,CODE FIRST挻好的。
manceelee 2012-11-29
  • 打赏
  • 举报
回复
建模吧. 也比较直观.
yyl8781697 2012-11-29
  • 打赏
  • 举报
回复
顶一下吧
winner2050 2012-11-29
  • 打赏
  • 举报
回复
Code First 非常不现实。 难道真有哪个公司用code表述数据库,而不需要建模?
  • 打赏
  • 举报
回复
ef 5 不能同时有多个 context migrate,但可以同时使用多个 context。删掉历史表就行。migrate 和 使用 dbcontext 是不同的概念。
昵称不合法 2012-11-29
  • 打赏
  • 举报
回复
快溜 2012-11-29
  • 打赏
  • 举报
回复
code first在公用数据库上着实是个让人蛋疼的问题,修改字段就要修改实体,修改实体就要修改迁移文件,傻瓜式的数据操作,跟传统的开发模式大相径庭,或许跟不上时代了。
七神之光 2012-11-29
  • 打赏
  • 举报
回复
wy811007 2012-11-29
  • 打赏
  • 举报
回复
不错哦 写的很好 谢谢分享
fjhzm2012 2012-11-29
  • 打赏
  • 举报
回复
学习学习~帮顶~
lvluo407 2012-11-29
  • 打赏
  • 举报
回复
学习学习~帮顶~
six-years 2012-11-29
  • 打赏
  • 举报
回复
这个真没接触
cityhunter172 2012-11-29
  • 打赏
  • 举报
回复
Multi-Tenant Migrations - In previous versions of EF you were limited to one Code First model per database when using Migrations, this limitation is now removed. If you want to know more about how we enabled this, check out the feature specification on CodePlex. 以上是 EF6 的新功能,"limited to one Code First model per database",看到这句话,大家也许就明白了,EF5 以前的版本中做了限定,一个数据库只允许一个 Code First model。
aluogang 2012-11-29
  • 打赏
  • 举报
回复
不懂,帮顶
cityhunter172 2012-11-29
  • 打赏
  • 举报
回复
引用 23 楼 q107770540 的回复:
MS在最新的 EF5 里已经解决这个每次都需要Recreate库的问题了
http://blog.csdn.net/cityhunter172/article/details/8062420 这是我写的博客《Code First Migrations 更新数据库结构的具体步骤》,我项目引用的就是 EF5,我目前正在看 EF6 的文档,希望能找到解决方案。 http://blogs.msdn.com/b/adonet/archive/2012/10/30/ef6-alpha-1-available-on-nuget.aspx
q107770540 2012-11-29
  • 打赏
  • 举报
回复
MS在最新的 EF5 里已经解决这个每次都需要Recreate库的问题了
cityhunter172 2012-11-29
  • 打赏
  • 举报
回复
引用 16 楼 rayaspnet 的回复:
如果项目变大了, 还是该换成 model first 吧。 你说的情况,就是非常适合 model first: 对同一个的数据库, 每个项目都有自己的 edmx
如果实在不行,我会考虑的。
引用 19 楼 xml111024 的回复:
是否可以采用一个项目主同步,更新成功后把Model复制给另外一个项目 第二个项目执行add-migration ,所有的语句注释掉,执行update-database
工作量非常大,还不如自己写一个数据仓储。
H_Gragon 2012-11-29
  • 打赏
  • 举报
回复
那就帮顶吧~!
ffaannggyyuu 2012-11-29
  • 打赏
  • 举报
回复
加载更多回复(20)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧