2014-11-19 11 views
1

У меня есть метод службы WCF, который принимает четыре параметра. Метод будет обрабатывать инструкцию обновления для обновления данных в базе данных MS SQL. Проблема, с которой я столкнулся, заключается в том, что я не могу найти способ отправки предложения в качестве параметра. Дело в том, что WCF не может принимать объекты QueryBuilder, потому что они не могут быть сериализованы. Метод на WCF будет вызываться с клиентской страницы asp.net (нет данных ajax).Передача WHERE/в службу WCF

  1. таблицы (строка)
  2. столбцов (строка [])
  3. значения (строка [])
  4. пункт (????)

ИНЕКЕ должно быть что-то вроде трехмерный массив пример:

clause.Add("users.id","=",1); 

Мой у.е. Метод с отсутствующим ко в ой то п

public bool SqlUpdate(string table, string[] columns, string[] values,??? clause) 
{ 
    bool success = false; 
    DbDataReader dbDataReader = null; 
    try 
    { 
     DbCommand command = new System.Data.SqlClient.SqlCommand(); 
     UpdateQueryBuilder update = new UpdateQueryBuilder(); 
     update.SetTable("users"); 
     update.AddAssignment("firstName", "ChangedName"); 
     //loop through clauses (it can have multiple clauses) if necessary 
     update.Where = new SimpleWhere("users", "id", Comparison.Equals, 4);  //this is where I need to input clause 
     success = true; 
    } 
    catch (Exception ex) 
    { 
     WriteError(ex.ToString()); 
     success = false; 
    } 
    return success; 
} 

UpdateQueryBuilder() является классом для создания параметризованного запроса по code-engine.com. Исходный код можно найти here

+5

Возможно, вам стоит взглянуть на [Службы данных OData/WCF] (http://msdn.microsoft.com/en-us/library/cc668792 (v = vs.110) .aspx) - это звучит как вы могли бы изобретать колесо? – StuartLC

+0

Допустим, что колесо было изобретено позже, когда была написана структура этого приложения WFC и asp.net. Что я могу сказать, я не тот, кто принимает такие решения. – SuperManSL

ответ

0

Посмотрите на динамический Linq (System.Linq.Dynamic). Вы можете передать строку запроса от клиента к серверу, а затем вызвать ее с помощью Dynamic Linq. http://dynamiclinq.codeplex.com/documentation

+0

Разделение ума и пример, пожалуйста? Потому что я не уверен, правильно ли я понимаю. – SuperManSL

Смежные вопросы