0

Я прочитал следующую статью о EF5 Databinding with WinForms.Как изменить навигационное свойство возврата типа

Я использую VS2010, .NET 4.0 и EF5 Model First, и я не знаю, как изменить тип возвращаемого свойства навигации в VS2010 EF Designer без изменения автоматически сгенерированного класса сущности. Например, мне нужно изменить тип возвращаемого свойства навигации от ICollection<T> до ObservableCollection<T>, но в окне «Свойства» отключена опция «Тип возврата».

+0

Пожалуйста, не используйте Заголовок вопроса как панель тегов, вместо этого используйте панель тегов. И не используйте подпись - это не обязательно на SO, если пользователь pic и его статистика показана. С Уважением, – abatishchev

ответ

1

Я нашел решение. Можно изменить тип всех свойств навигации, которые являются коллекциями. Текстовый шаблон * .tt файл для модели Сначала автогенерируемые объекты должны быть отредактированы.

По умолчанию EF5 создает навигационные свойства HashSet типа:

If(edmProperty.ToEndMember.RelationshipMultiplicity = RelationshipMultiplicity.Many) 
    defaultValue = " = New HashSet(Of " & propertyType & ")" 
    propertyType = "ICollection(Of " & propertyType & ")" 
End If 

Чтобы изменить свойства навигации типа для ObservableCollection<T>, две строки * Код .tt должен быть изменен:

If(edmProperty.ToEndMember.RelationshipMultiplicity = RelationshipMultiplicity.Many) 
    defaultValue = " = New ObservableCollection(Of " & propertyType & ")" 
    propertyType = "ObservableCollection(Of " & propertyType & ")" 
End If 

После этого, классы сущностей должны автоматически восстанавливаться.