Проблема с кодом EF Первый вывод внешнего ключа - PullRequest
0 голосов
/ 17 января 2011

Я впервые работаю с EF Code First, и у меня возникают проблемы с установкой отношений между моими типами.Учитывая эти два типа:

<Table("grpGroupType")>
Public Class GroupType
  <Key()>
  Public Property GroupTypeID As Integer

  <Required()>
  Public Property IsActive As Boolean

  <Required()>
  <MaxLength(100)>
  Public Property Description As String

  Public Overridable Property GroupDefinitions() As ICollection(Of GroupDefinition)
End Class

и

<Table("grpGroupDefinition")>
Public Class GroupDefinition
  <Key()>
  Public Property GroupDefinitionID As Integer

  <Required()>
  Public Property GroupTypeID As Integer

  <Required()>
  Public Property IsActive As Boolean

  <Required()>
  Public Property ScopeValue As Integer?

  <Required()>
  <MaxLength(100)>
  Public Property Description As String

  Public Overridable Property GroupType As GroupType
End Class

, я могу загружать и сохранять данные, используя класс DbContext, но когда я пытаюсь получить доступ к GroupType.GroupDefinitions или GroupDefinition.GroupType, ониоба ничего не возвращают.Мой класс DbContext находится здесь:

Public Class PD
  Inherits DbContext

  Public Property GroupDefinitions As DbSet(Of GroupDefinition)
  Public Property GroupTypes As DbSet(Of GroupType)

  Protected Overrides Sub OnModelCreating(ByVal modelBuilder As     ModelConfiguration.ModelBuilder)
    modelBuilder.Entity(Of GroupDefinition)().HasKey(Function(b) b.GroupDefinitionID)
    modelBuilder.Entity(Of GroupType)().HasKey(Function(b) b.GroupTypeID)
  End Sub
End Class

Кажется, что нет большой документации по выводу ключа, но я нашел это сообщение в блоге , и кажется, что мои классы следуют правиламдля автоматического вывода.

Может ли кто-нибудь указать мне правильное направление?

Ответы [ 2 ]

0 голосов
/ 17 января 2011

Я понял это.У меня был метод SelectOne, который создавал DbContext локально.Я создал контекст в вызывающем коде и передал его в SelectOne, и теперь все работает.Спасибо всем.

0 голосов
/ 17 января 2011

Попробуйте добавить

Public Property GroupTypeID As Integer

к вашему классу GroupDefinition.

Даже если это не нужно и не требовалось в более ранних версиях, похоже, что CTP5-версия EFнужно немного более четкое определение, чтобы он мог подобрать отношения.Лично я надеюсь, что они исправят это до RTM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...