У меня есть служба Windows (или Windows Forms) , и по истечении таймера моя служба выполняет некоторые задачи.
Я не хочу использовать только один контекст Entity Framework , пока мое приложение работает.
Я видел фабрику сессий в NHibernate образцов.Есть ли что-то подобное для EF ?
Вот как я использую EF + StructureMap в моем ASP.NET илиMVC apps:
Запуск приложения:
ObjectFactory.Configure(Function(config) config.For(Of IUnitOfWork).HybridHttpOrThreadLocalScoped.Use(Of UnitOfWork)())
Запрос на завершение:
ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects()
My UnitOfWork запускается за веб-запрос и удаляется после завершения запроса.
В моем Win App сценарии , UoW должно начаться, когда таймер истечет и будет утилизирован после завершения моей работы, и Я не хочу справляться с этим сам.
Как я могудобиться чего-то подобного в приложении Windows Form?
Если я зарегистрирую свой UoW с помощью: HybridHttprThreadLocalScoped
В нити будет одно UoW и если я утилизирую это, это ушло .
РЕДАКТИРОВАТЬ:
У меня есть хранилища + службы в DLL , и я хочу использовать их в как веб-приложениях, так и приложениях , и потомуе я использовал HybridHttpOrThreadLocalScoped
.
Обновление 2:
Вот мой Хранилище :
Public Class ProductRepository
Private ReadOnly _databaseFactory As DataAccess.IDatabaseFactory
Public Sub New(ByVal databaseFactory As DataAccess.IDatabaseFactory)
_databaseFactory = databaseFactory
End Sub
Public Function GetById(ByVal id As Integer) As Product
Return (From item In _databaseFactory.GetDataContext.Products Where item.ProductId = id).FirstOrDefault
End Function
End Class
и вот мой сервис :
Public Class ProductService
Private ReadOnly _Repository As ProductRepository
Public Sub New(ByVal repository As ProductRepository)
_Repository = repository
End Sub
Public Function GetById(ByVal id As Integer) As Product
Return _Repository.GetById(id)
End Function
End Class
И я использую StructureMap .StructureMap берет машину из моих DatabaseFactory и UoW life в web сценариях.Но я понятия не имею, что делать в приложениях win .Я могу управлять временем жизни UoW сам , но я ищу способ, чтобы StructureMap обработал бы его для меня , как он обрабатывает время жизни в веб-приложениях.