【发布时间】:2015-08-21 14:39:21
【问题描述】:
我正在尝试使用 EF6 将两个字段组合成一个唯一索引。但是 update-database 命令不会将“所有者”字段添加到索引中。我在想这是因为它不是原始类型而是 FK,但我不确定如何修复它。
public class Fund
{
[Key]
public int FundId { get; set; }
[Required]
[Index("IX_FundNameAndOwner", IsUnique = true, Order = 1)]
[Index("IX_FundIdentifierAndOwner", IsUnique = true, Order=1)]
public ApplicationUser Owner { get; set; }
[Required]
[Index("IX_FundNameAndOwner", IsUnique = true, Order=2)]
[MaxLength(25)]
public string Name { get; set; }
[Required]
[Index("IX_FundIdentifierAndOwner", IsUnique = true, Order=2)]
[MaxLength(25)]
public string Identifier { get; set; }
public double Balance { get; set; }
}
生成的索引:
创建唯一的非聚集索引 [IX_FundIdentifierAndOwner] ON [dbo].[Funds]([Identifier] ASC);
创建唯一的非聚集索引 [IX_FundNameAndOwner] ON [dbo].[Funds]([Name] ASC);
创建非集群索引 [IX_Owner_Id] ON [dbo].[Funds]([Owner_Id] ASC);
非常感谢任何帮助!
【问题讨论】:
-
ApplicationUser 定义如何?您可以使用 RelatedTo 属性 [RelatedTo(RelatedProperty=“Fund”, Key=”OwnerIDOnFund”, RelatedKey=”OwnerIDOnApplicationUser”)]
标签: c# entity-framework ef-code-first