DbLinq и Mono 2.4: работают вместе?

Надеюсь, это глупый вопрос, и где-то действительно есть простое решение, но ...

Кто-нибудь успешно заставил DbLinq нормально работать с Mono 2.4 на Mac OS X 10.5?

У меня есть готовая база данных SQLite, но, хоть убей, я не могу найти sqlmetal для создания своих объектов.

Я предполагаю, что мне, возможно, придется загрузить предыдущую версию Mono, которая включала sqlmetal, собрать и установить ее, а затем просто использовать код, сгенерированный из этой версии, на Mono 2.4 ... но я надеюсь избежать этого любой ценой .


person Justin Niessner    schedule 21.09.2009    source источник


Ответы (3)


Я бы избегал использования DBLinq для производственного кода ... многие функции Linq-To-SQL не реализованы, а просмотр исходного кода показывает низкий уровень зрелости ... многие методы не реализованы или помечены как «неустановленный».

... вас предупредили!

person Mark    schedule 05.11.2009
comment
Есть ли другие предложения по совместному использованию SQLite, Linq и Mono? Я открыт для альтернатив. - person Justin Niessner; 05.11.2009
comment
+1 @Mark. Мы обнаружили несколько ужасных ошибок, когда DbLinq компилировал и выполнял выражение Linq, но результаты были бы совершенно неверными. Это особенно верно для любого использования GroupBy. Было бы гораздо приятнее, если бы движок просто выдавал исключение IDontDoGroupBy. - person Marcelo Cantos; 14.04.2010

Использование предварительно скомпилированного двоичного файла в этом случае просто не работает.

Чтобы получить правильно сгенерированный уровень данных DbLinq, вы должны использовать инструмент sqlmetal, включенный в Mono (но, по-видимому, не с предварительно скомпилированными двоичными файлами для OS X). Вам нужно вытащить магистраль Mono (вместе со всеми зависимостями) и собрать Mono из исходного кода.

После сборки и установки Mono из исходного кода у вас должен быть инструмент sqlmetal. После того, как вы сгенерируете свой код, это так же просто, как включить сгенерированный файл * .cs и импортировать Mono.Data.Sqlite.

person Justin Niessner    schedule 25.09.2009

Mono 2.6 впервые будет включать предварительную версию DbLinq с Mono. Вы можете попробовать это сегодня, если вы установите DbLinq самостоятельно, параллельно с текущей настройкой Mono.

person miguel.de.icaza    schedule 23.09.2009
comment
@Miguel - Спасибо за ответ. У меня действительно есть DbLinq, собранный и установленный бок о бок с Mono. Я установил Mono из предварительно скомпилированного двоичного файла для OS X и не смог найти sqlmetal для генерации моего кода доступа к данным. Я попытался скомпилировать DbMetal из DbLinq, но тоже не смог заставить его работать. Наконец, я загрузил Mono trunk ... и сейчас жду сборки. - person Justin Niessner; 24.09.2009