Comments 3
Спрошу на всякий случай. Есть у нас в linq2db исью: какие провайдеры надобы доделать https://github.com/linq2db/linq2db/issues/1014#issuecomment-601037110
Если есть желание, думаю за недельку другую вы бы написали DataProvider к linq2db и заодно получили бы плюшки его возможностей.
Никто и не думает о разработчиках 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 бесплатных опций.
Новый .NET клиент для Snowflake