当前位置:编程学习 > C#/ASP.NET >>

CodeFirst 如何解决 table doesn't exist 的问题

我有2个Context.
他们映射到同一个Schema

当然,他们的tableName不一样

但是我发现第二个产生的context无法顺利创建table, 会报异常: table "xxxxxx doesn't exist

请问有什么办法解决吗?

如果我写:
Database.SetInitializer<TickConvertInfoContext>(new DropCreateTable<TickConvertInfoContext>());

这个函数,就会把重建整个schema, 这样前一个context数据都没有了!

求救!

--------------------编程问答-------------------- 当然不能用 DropCreateTable 
用CreateDatabaseOnlyIfNotExists --------------------编程问答-------------------- 可是这个只会创建 Database , 也就是 Schema
但是Schema存在的, 不存在的是Schema下面的Table

你说的这个只有在Schema不存在的时候才有用...... --------------------编程问答-------------------- 有什么理由你非要用2个context,还必须用一个库。 --------------------编程问答-------------------- 这2个表逻辑上属于一个schema, 但是其中一个表变得会比较厉害,所以不想放在一个context中.

另一方面觉得太臃肿

我现在只能在 onmodalcreate 中写 create table if not exist .......... 这些sql语句 --------------------编程问答-------------------- 手动 创建数据库表,已你的 code first 对应 --------------------编程问答-------------------- 楼上说的就是我现在的方法,累啊 --------------------编程问答--------------------
引用 4 楼 norsd 的回复:
这2个表逻辑上属于一个schema, 但是其中一个表变得会比较厉害,所以不想放在一个context中.

另一方面觉得太臃肿

我现在只能在 onmodalcreate 中写 create table if not exist .......... 这些sql语句


你可以用部分类把两个context写在一起。 --------------------编程问答-------------------- 楼上这个方法只能顶一用,想象本来一个conext可以移植,现在还要手工把一个context分成另外一个.......除非做成基类啥的,总之不方便,不合用 --------------------编程问答-------------------- 这个问题还真是难以解决
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,