![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Есть такой полузаброшенный проектик по реализации LINQ-To-SQL для разных СУБД - DbLinq.
Так вот, для Firebird он работает весьма условно - простейшие сгенерированные из LINQ запросы не работают. Например:
select cell from Cells group cell by cell.Document into g select new {k=g.Key,c=g.Count()};
генерирует такой SQL:
SELECT Document , (SELECT COUNT(*))
FROM Cells
GROUP BY Document
который, само собой, не работает
Попробую еще родной Firebird провайдер запустить, что ли.
PS: .NET 3.5 и 2008 студия, если чо:
завел кодогенератор EntityFramework с FirebirdSql.Data.FirebirdClient:
EdmGen /mode:FullGeneration /project:somename /provider:FirebirdSql.Data.FirebirdClient /connectionstring:"database=somedb;User=SOMEUSER;Password=somepass;Role=;Dialect=3;Server=fb25;Port=3050;Charset=WIN1251"
Из студии это запускать - ну его фхер, тем более что DDEX тоже не работает нихрена - при любом изменении поля в окне подключения к БД оное окно само собой закрывается :)
EdmGen упорно не видел провайдера из GAC. Пришлось руками проставить его в EdmGen.exe.config DbProviderFactories и положить рядом.
Полученное файло somedb.ObjectLayer.cs зависит от неймспейса System.Data.Objects, живущего в System.Data.Entity и от System.Runtime.Serialization. Но даже собирается. Теперь ему еще бы EntityConnection создать откуда-нибудь.
Мда, строки коннекта радуют: http://blogs.teamb.com/craigstuntz/2010/08/13/38628/
PPS: оно таки заработало. Но чертово вуду, хуже инсталляции жабы и руби вместе взятых.
Так вот, для Firebird он работает весьма условно - простейшие сгенерированные из LINQ запросы не работают. Например:
select cell from Cells group cell by cell.Document into g select new {k=g.Key,c=g.Count()};
генерирует такой SQL:
SELECT Document , (SELECT COUNT(*))
FROM Cells
GROUP BY Document
который, само собой, не работает
Попробую еще родной Firebird провайдер запустить, что ли.
PS: .NET 3.5 и 2008 студия, если чо:
завел кодогенератор EntityFramework с FirebirdSql.Data.FirebirdClient:
EdmGen /mode:FullGeneration /project:somename /provider:FirebirdSql.Data.FirebirdClient /connectionstring:"database=somedb;User=SOMEUSER;Password=somepass;Role=;Dialect=3;Server=fb25;Port=3050;Charset=WIN1251"
Из студии это запускать - ну его фхер, тем более что DDEX тоже не работает нихрена - при любом изменении поля в окне подключения к БД оное окно само собой закрывается :)
EdmGen упорно не видел провайдера из GAC. Пришлось руками проставить его в EdmGen.exe.config DbProviderFactories и положить рядом.
Полученное файло somedb.ObjectLayer.cs зависит от неймспейса System.Data.Objects, живущего в System.Data.Entity и от System.Runtime.Serialization. Но даже собирается. Теперь ему еще бы EntityConnection создать откуда-нибудь.
Мда, строки коннекта радуют: http://blogs.teamb.com/craigstuntz/2010/08/13/38628/
PPS: оно таки заработало. Но чертово вуду, хуже инсталляции жабы и руби вместе взятых.
no subject
Date: 2012-02-10 06:43 pm (UTC)http://bltoolkit.net/Doc.LinqConfig.ashx
no subject
Date: 2012-02-11 05:44 am (UTC)no subject
Date: 2012-02-10 07:12 pm (UTC)group cell by
- гм? Или это я туплю?no subject
Date: 2012-02-10 10:12 pm (UTC)