F # - Какую ORM выбрать? - PullRequest
       19

F # - Какую ORM выбрать?

10 голосов
/ 10 марта 2011

Я только начал играть с F #, и мне было интересно, есть ли какие-нибудь рекомендуемые ORM, для F #.

В C # я использовал NHibernate, который кажется довольно сложным и уродливым для реализации в F #. Я также думал об использовании простого старого System.Data.SqlClient, но это все равно что вернуться в каменный век ...

Есть предложения?

Ответы [ 4 ]

8 голосов
/ 10 марта 2011

Я использую поддержку F # для LINQ to SQL при работе с fssnip.net .Это хорошо, когда вам нужно загружать, редактировать, вставлять объекты и хорошо для написания простых запросов.У него есть несколько приятных аспектов, например, вы можете использовать сплайсинг для составления частей запроса.

Однако текущая реализация транслятора F # в LINQ не обрабатывает сложные запросы (вызовы вложенных функций,расширенная группировка и объединения), поэтому я написал несколько хранимых процедур.Их можно красиво вызывать через сгенерированные объекты LINQ, но вам нужно написать немного SQL.

В качестве альтернативы, если вы хотите использовать старомодный SqlClient, вы можете сделать его лучше, используя динамический (?) оператор.Я написал об этом в этом блоге .Для простых сценариев это может быть довольно хорошей техникой, потому что это очень просто.

5 голосов
/ 10 марта 2011

В этом может не хватать смысла (например, если это просто для образования или развлечения), но если вы уже знаете, как использовать ORM в C #, почему бы просто не сделать это в C # в качестве библиотеки, а затем сделать остальное логика в F #? Одним из основных преимуществ продаж для языков .NET является совместимость.

1 голос
/ 10 марта 2011

Я использую LINQ to SQL через F # PowerPack. Я использую ручное отображение (т.е. создаю свой текстовый текст вручную, создаю мои классы POCO, а также пишу файл XML, чтобы определить структуру моей базы данных). Похоже, что хорошо работает в F # из того, что я сделал до сих пор.

0 голосов
/ 02 июля 2019

Возможны два варианта взаимодействия с базами данных с использованием F #: FSharp.Data.SqlClient и SQLProvider .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...