pet*_*tho 9 entity-framework code-first entity-framework-4.1
我正在使用EF 4.1 CodeFirst来创建我的数据库.似乎EF正在创建具有聚簇索引的所有主键,这在一种情况下对我们来说不是最佳的(可能更多情况).有没有办法告诉EF使用主键作为非聚集索引生成此表?
当然我们可以在创建数据库之后使用自定义脚本手动完成它,但是我们有很多外键指向这个表,如果有更好,更直接的方法,这将是一个非常好的解决方案数据库创建期间已经相同.任何帮助赞赏
Lad*_*nka 14
没有办法控制SQL代码首先生成 - 它首先是代码,它的当前哲学(实际上是坏的)是:你对数据库一无所知,你也不用费心.
更改此行为的唯一方法是编写自定义数据库初始化程序,使用自定义数据库查询来搜索已创建的索引,删除该索引并创建新索引.一些参考:
initilizer将使您的解决方案依赖于具体的数据库服务器产品.
是的,有一种方法可以指定不创建聚簇索引.如果使用代码迁移,则会生成*.cs文件以填充DataBase.如果需要使用聚簇索引创建,则可以在此文件中指定每个表的主键.
.PrimaryKey(t => t.MID, null, true)
Run Code Online (Sandbox Code Playgroud)