实体框架6.1.1索引的命名约定

时间:2014-09-18 03:38:00

标签: entity-framework ef-code-first naming-conventions entity-framework-6.1

我了解如何首先在代码中添加约定(使用迁移)项目。我已成功设法执行表名,甚至将GUID Id字段更改为非群集。

但我还没有找到如何在没有给出名字的情况下更改EF提供的默认索引名称。

[Index(IsUnique = true)]
public string Code { get; set; }

[Index]
public string Description { get; set; }

我有这两个要求。顶部索引应命名为UX_[schema]_[table]_Code,第二个IX_[schema]_[table]_Description

我还需要支持多列索引,其中IsUnique仍然是UX,但列部分是所有列的Camel Case组合(例如UX_[schema]_[table]_CodeDescription,如果上面的两列在同一索引中。 / p>

我假设我需要在IndexAttributeConvention之后添加它,以便所有当前功能都可以工作并创建IndexAnnotations。但如果在属性(或Fluent构造)中留空,我无法找到索引接收其初始名称的位置。

提前致谢。

1 个答案:

答案 0 :(得分:-1)

您是否尝试过此注释:[索引(“IndexName”)] 或者为你的例子:

[Index("IndexName", IsUnique = true)]
public string Code { get; set; }