实体框架6.1(代码优先)增加了通过添加索引的可能性IndexAttribute.该属性采用一个参数来指定索引应该是群集还是非群集.
同时,AFAIK,Entity Framework要求每个实体都有一个主键(用该注释KeyAttribute),并且该主键始终作为聚簇键创建.
因此,只要我的申请IndexAttribute有IsClustered = true,我得到一个错误,因为由于键时,已经是一个聚集索引.
那么,如何使用IndexAttribute?创建不是主键的聚簇索引?可用的IsClustered属性是IndexAttribute什么?
(有关更多上下文:我正在映射一个仅用于通过LINQ查询进行读取的表.我不需要实际插入,更新或删除该表中的实体.因此,我不需要主键理想情况下,我想要一个没有主键的表,但是有一个非唯一的聚簇索引,专为阅读而优化.)
编辑(2014-04-11):另请参阅https://entityframework.codeplex.com/workitem/2212.
我注意到EF 6可以使用Index属性指定非聚集的属性.如何使用数据注释生成非聚集主键?我使用Guid作为主键.