Pull to refresh

Comments 3

Спрошу на всякий случай. Есть у нас в linq2db исью: какие провайдеры надобы доделать https://github.com/linq2db/linq2db/issues/1014#issuecomment-601037110
Если есть желание, думаю за недельку другую вы бы написали DataProvider к linq2db и заодно получили бы плюшки его возможностей.

Желания нет и вряд ли появится. Но я посмотрю как-нибудь, сколько может занять реализация провайдера. Разработчики Snowflake вряд ли будут сами делать поддержку, а на своем проекте мы пишем запросы руками — их не так много и все они простые.

Никто и не думает о разработчиках Snowflake. В первую очередь это понадобится тем кому не хотется на каждый чих писать запрос, а просто написать типобезопасно без строчек (по следам ваших запросв)


var a = snowflakeClient.QueryScalar("SELECT COUNT(*) FROM EMPLOYEES WHERE TITLE = ?", "Programmer");

var a = db.Employees.Where(e => e.Title == "Programmer").Count();

var b = snowflakeClient.QueryScalar("SELECT COUNT(*) FROM EMPLOYEES WHERE ID = ?", 3);

var b = db.Employees.Where(e => e.Id == 3).Count();

var c = snowflakeClient.QueryScalar("SELECT COUNT(*) FROM EMPLOYEES WHERE ID IN (?,?)", new int[] { 1, 2 });

var c = db.Employees.Where(e => new int[] { 1, 2 }.Contains(e.Id)).Count();

И не заботиться о маппинге


var employees = snowflakeClient.Query<Employee>("SELECT * FROM MASTER.PUBLIC.EMPLOYEES;");

var employees = db.Employees.DatabaseName("MASTER").SchemaName("PUBLIC").ToList();

Параметризацией запросов или literal inlining с эскейпингом займется сам linq2db.


SQL у Snowflake весьма стандартен, написание такого провайдара это не rocket science. Все упирается в то что мы не можем такое поставить на CI — нету у Snowflake бесплатных опций.

Sign up to leave a comment.

Articles