Rhino eTL: операция соединения с пустыми строками - PullRequest
1 голос
/ 23 января 2011

Я впервые использую ETL Rhino в проекте, и я очень впечатлен его возможностями. Я использую операцию соединения, чтобы соответствовать два источники данных.

Иногда могут отсутствовать данные, поэтому я переопределяю LeftOrphanRow на «лог» ошибка. Таким образом, я хотел бы выбросить исключение в конце процесса собрать все возникшие исключения, используя GetAllErrors ().

Но, как кажется, процесс прерывается с первым исключением. Это намеренно? Что было бы лучшим способом иметь дело с OrphanRows (особенно, когда я хотел бы получить сводку по всем потерянным строкам для всех операций в конце процесса)?

1 Ответ

0 голосов
/ 14 апреля 2011

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

Можете ли вы просто хранить где-нибудь список строк-сирот, например, глобально, и добавить к нему всякий раз, когда вы сталкиваетесь с одним из ваших операций объединения? Затем, после завершения EtlProcess, просто распечатайте список. Вы можете также рассмотреть возможность использования log4net для достижения этой цели. Или даже просто поднять событие, на которое вы подписываетесь в другом месте и делаете все, что кажется подходящим.

...