Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Вообще говоря, чтобы Ваш бэкенд базы данных работал с .NET, Вам нужен поставщик ADO.NET для него.
Для Доступа MS (Струя), Поставщик поставляется с .NET. Для SQLite существует автономный Поставщик ADO.NET.
Что касается lib уровня доступа к данным, если Вы хотите некоторую абстракцию по ADO.NET:
Все, что они работают хорошо стартовые с платформой 2.0 и.
В основном, Вы выбираете (и существует большой выбор)
Для легкого ORM, который работает хорошо и только требует единственной сборки, почему бы не испытать Lightspeed от Mindscape. Это не открытый исходный код, однако источник доступен, и это по умеренной цене - риск с большей частью ORM's, которые не хорошо приняты, конечно, качество и уровень поддержки, и существует очень немного других ORM's с открытым исходным кодом, которые стоит обеспокоиться в пространстве .NET в данный момент.
из-за Вашей неприязни к зависимостям NHIBERNATE это кажется, что у Вас нет потребности в платформе журналирования или каком-либо из фасетов проекта замка т.е. МОК, Монорельсовой дороги и т.д., Вы рассмотрели, возможно, просто взятие абсолютного минимума требований NHibernate (log4net и наборы Iesi я верю, и динамический прокси из проекта замка?) и выполняющий ILMerge по ним для консолидации их в единственный блок - мог бы взять немного игры, но это не слишком твердо - или альтернативно Вы могли просто вытянуть исходный код для каждого из этих проектов в сделанный на заказ из NHibernate, который Вы поддерживаете для своей организации, которая обрезает функции, не требуемые Вашим проектом/организацией - это не как hard/akward, поскольку это звучит, и я сделал что-то вдоль этих строк для одного проекта, где мы хотели к преимуществу ORM, но должны были уменьшить размер распределенных файлов/установщика.
Также - Вы, возможно, способный объяснить, что Вы чувствуете, слишком "тяжело" о базирующемся решении Nhibernate..., по моему опыту, это - довольно легкая платформа ORM по сравнению с некоторыми.
некоторые альтернативы:
- ActiveRecord - это использует nhibernate.dll в фоне, но конфигурация реализована через атрибуты. Это похоже на облегченную версию nhibernate
- Дозвуковой
- CoolStorage.NET - я использовал его много с маленькими проектами. Работы хорошо с количеством dbs
Вот большой список альтернатив, которые я бы порекомендовал:
Эти 4 являются самыми легкими. Subsonic, ActiveRecord и другие предназначены для больших систем. Они отлично работают на небольших системах, но (по крайней мере, для ActiveRecord) поставляются с огромным списком зависимостей и избыточностью для небольшой системы. Я бы выбрал Lightspeed и скажу, что под 8 объектами - это небольшая система, и простое использование NHibernate, потому что оно широко распространено, хорошо для масштабирования, но в краткосрочной перспективе не имеет смысла - и наличие слоя между ORM и вашими потребителями может работать в любом случае.
LINQ к SQL мог быть хорошей альтернативой для "поднимания" систем ORM при использовании его правильно.