Как я могу обрабатывать сущность с другими сущностями как дочерние на разных уровнях приложения - PullRequest
0 голосов
/ 15 февраля 2010

Если я отсоединяю контекст, я теряю все отношения, и если я не делаю, я не могу сохранить позже, потому что контекст сущности удаляется ...

Это пример моего кода

Public Sub Save()
    Using ctx As HMIEntities = New HMIEntities
        ctx.AttachUpdated(Me) //I use this extension method that works fine if I detach in the get method and the entity has no properties as entities
        ctx.SaveChanges()
    End Using
End Sub

Public Shared Function GetByID(ByVal ID As Integer) As Page
    Dim retval As Page
    Using ctx As HMIEntities = New HMIEntities                        
        retval = ctx.PageSet.Include("PageContent").FirstOrDefault(Function(p) p.Slug = ID)            
    End Using
    Return retval
End Function

Это просто невозможно?

1 Ответ

1 голос
/ 16 февраля 2010

Создайте контекст (прямо или косвенно) в начале запроса и утилизируйте его в конце запроса. Большинство людей используют для этого DI-контейнер с выделенным обработчиком HTTP, но вы можете сделать это в Global.asax.cs, если не хотите идти по этому пути. Лично я использую MVC, поэтому я делаю это на фабрике контроллеров.

Тогда все, что нуждается в контексте, может получить его из контейнера DI (или с помощью внедрения конструктора), и у вас будет один контекст для всей полноты каждого запроса.

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