2011-03-17 9 views
0

使用方法的:LINQ到SQL(執行自定義SQL表達式):如何替換的參數以與陣列值

DataContext.ExecuteQuery<TResult>(String, Object[]); 

下面的命令生成與消息的InvalidOperationException

{「莫非沒有格式節點 '值' 來執行如SQL。「}

int[] ids = new int[] {1, 2, 3}; 
context.ExecuteQuery<SourceTarget>(select c.* from Customer c where c.customer_id in {0}, ids); 

你幫助將非常感激。

+0

它編譯? – Guillaume86 2011-03-17 17:14:26

回答

1

由於您使用LINQ到SQL,您可以使用LINQ語法代替的executeQuery,如:

var customers = from c in context.Customers 
       where ids.Contains(c.customer_id) 
       select c; 

或者,如果你堅持要使它成爲一個SQL查詢,請嘗試:

context.ExecuteQuery<SourceTarget>(String.Format("select c.* from Customer c where c.customer_id in ({0})", 
    String.Join(",", ids)));