Ich versuche, zwei Felder zu einem eindeutigen Index mit EF6 zu kombinieren. Der Befehl update-database fügt jedoch nicht das Feld 'Besitzer' in den Index ein. Ich denke, es ist, weil es kein primitiver Typ ist, sondern ein FK, aber ich bin mir nicht sicher, wie ich das beheben kann.C# EF6-Index-Attribut funktioniert nicht
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; }
}
Erzeugte Indizes:.
CREATE UNIQUE INDEX NONCLUSTERED [IX_FundIdentifierAndOwner] ON [DBO] [Mittel] ([Identifier] ASC);
EINZIGARTIGEN NONCLUSTERED INDEX ERSTELLEN [IX_FundNameAndOwner] ON [dbo]. [Fonds] ([Name] ASC);
NONCLUSTERED INDEX ERSTELLEN [IX_Owner_Id] ON [dbo]. [Fonds] ([Owner_Id] ASC);
Jede Hilfe wird sehr geschätzt!
Wie ist die ApplicationUser-Definition? Sie können das Attribut RelatedTo verwenden [RelatedTo (RelatedProperty = "Fonds", Key = "OwnerIDOnFund", RelatedKey = "OwnerIDOnApplicationUser")] – Luca