У меня есть приложение winform в visual studio 2010. Мое приложение выполняет следующие действия:
- Получите список файлов, которые мне нужно прочитать, а затем вставить в базу данных.
- Для каждого файла прочитайте данные и вставьте в БД.
Итак ... это код, который у меня есть.
// *******
// *** How should the _repository be Injected??
// *******
var list = _repository.GetFileList();
if (list != null)
{
int i = 0;
foreach(var file in list)
{
i++;
var service = new MyService(i, _repository);
service.ParseAndSave();
}
}
Так что я надеялся создать новый репозиторий для каждой «службы», которую я создаю.
Во-первых, я не уверен, должен ли я использовать IoC в этом случае. Я считаю, что так и должно быть, потому что тогда мне не нужно тесно связывать эту winform с репозиторием.
Во-вторых, я попытался использовать репозиторий Singleton, который мне не нужен, и могу подтвердить, что он убивает этот код (сбои за исключением).
Некоторые другие заметки (которые не должны влиять на этот вопрос)
- Использование Entity Framework для ASP.NET 4.
- Использование StructureMap для IoC
Может кто-нибудь помочь, пожалуйста?
UPDATE
О, я забыл упомянуть. Когда я не указываю тип жизненного цикла (например, Singleton и т. Д.). мои объекты, которые я пытаюсь сохранить, просто не сохраняйте. (т.е. ничего не отправляется в БД, глядя на SQL Profiler). Если я использую Singleton с одним файлом ... это работает. Синглтон с 2+ файлами, затем исключение / сбой из-за (внутреннего EF) первичного ключа конфликтует с Entity Framework. Так что, если мне нужно использовать Singleton, проблема должна быть в том, как я настроил свой контекст EF4.