В объекте у меня есть следующее объявление:
Default Property Item(key As String) As String
Поскольку Entity Framework не нравится индексированные свойства, я пытался его игнорировать:
Public Class EntityMap
Inherits EntityTypeConfiguration(Of EntityMap)
Public Sub New()
' Me.Ignore(Function(x) x.Item()) --- Missing index parameter, compiler error
' Me.Ignore(Function(x) x.Item(String.Empty)) --- Gives runtime error
End Sub
End Class
Я такжепопытался удалить все соглашения об обнаружении из modelBuilder, поэтому все отношения свойств должны быть явно установлены:
modelBuilder.Conventions.Remove(Of AssociationInverseDiscoveryConvention)()
modelBuilder.Conventions.Remove(Of ComplexTypeDiscoveryConvention)()
modelBuilder.Conventions.Remove(Of IdKeyDiscoveryConvention)()
modelBuilder.Conventions.Remove(Of NavigationPropertyNameForeignKeyDiscoveryConvention)()
modelBuilder.Conventions.Remove(Of PrimaryKeyNameForeignKeyDiscoveryConvention)()
modelBuilder.Conventions.Remove(Of TypeNameForeignKeyDiscoveryConvention)()
Когда выполняется запрос linq для извлечения объектов, генерируется исключение «Индексированные свойства не поддерживаются».
У кого-нибудь есть идеи, как позволить Entity Framework игнорировать индексированное свойство?Свойство должно быть общедоступным для других лиц.
Заранее спасибо!