问题描述
在使用CodeFirst的时候,有一个比较严重的问题。EF在创建表的时候,会默认将主键创建为聚集索引、并且无法删除这种默认的约定,必须要通过“手动迁移”、先删除默认的聚集索引、然后删除各种主外键关系、最后将聚集索引加到其它字段上。但是EF6中,我使用了自动迁移,我想让model在一开始创建表的时候就能达到我想要的效果。如:publicclassorder{publicGuidid{get;set;}//默认会将Id创建为主键。并且聚集索引就加在了id上publicstringOrderCode{get;set;}//订单编号。我的目的是想让订单编号变为聚集索引。}在通过FluentAPI配置的时候,发现也无法直接设置聚集索引。只能添加keythis.HasKey(a=>a.OrderCode);经过这样操作之后,订单编号变为聚集索引了。但是,同时也变为主键了,这并不是我想要的。主键我还是想用自己创建的GuidId,否则我创建这个Id字段毫无意义,直接删除掉就行了。在此,恳求各位EF大神,看有没有解决办法,感激不尽。
解决方案
时间: 2024-10-05 08:08:58