Как динамически назначить таблицу базы данных и столбцы для linq? - PullRequest
1 голос
/ 14 июля 2011

Я попытался вызвать запрос linq из приложения sliverlight к веб-сервису, который называется «ADD.NET Entity Data Model» с «WCF Data Service». Линк ниже работает (например, используя предварительно определенные имена таблиц и полей):

        var query = from o in context.ORDER
                    where o.NUMBER == 1
                    select o;

        ((DataServiceQuery<ORDER>)query).BeginExecute(OnQueryComplete, query);    

Но мне нужно динамически назначать разные имена таблиц и полей для запроса linq. Там в любом случае? Нужно ли писать метод в WCF для выполнения какой-либо команды sql?

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 14 июля 2011

Вы можете использовать образцы Dynamic Linq для предоставления динамических имен полей в предложениях where - см .: http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx

Кроме того, вы можете сделать это безопасным для типов способом, используя PredicateBuilder - http://www.albahari.com/nutshell/predicatebuilder.aspx

Для более динамичного поведения - включая динамические имена таблиц - единственная опция Linq, о которой я могу подумать, - это скомпилировать некоторый код во время выполнения в вашем приложении, используя CSharpCodeProvider (http://support.microsoft.com/kb/304655). Однако, очевидно, вам необходимобудьте осторожны с безопасностью, предлагая это через веб-сервис.

...