1

選択クエリに列名を動的に配置したい。どうすればこれを行うことができますか?

public IEnumerable MyTable MySelect(string colName, string param)
{
  using (MyEntities db = new MyEntities ())
  {
     var query = from res in db.MyTable
     where res.colName.Contains(param)
     select res;
     return query;
  }
}
4

4 に答える 4

2

試しましたres.Field<string>(colName)か?

public IEnumerable MySelect(string colName, string param)
{
  using (MyEntities db = new MyEntities ())
  {
     var query = from res in db.MyTable.AsEnumerable()
     where res.Field<string>(colName).Contains(param)
     select res;
     return query;
  }
}

ここに例があります。

PS: コードをコンパイルしていないため、エラーが発生する可能性があります。

于 2012-09-14T09:55:39.787 に答える
0

Dynamic Linq ライブラリと ScottGu のライブラリの使用方法をご覧ください。これにより、動的フィルタリング、並べ替えなどが可能になります。

于 2012-09-14T09:45:14.757 に答える
0

Expression(Of Func(Of TableName, Boolean))メソッドへの入力パラメータとして使用

    Public Function SelectFirstOrDefault(ByVal filterExpr As Expression(Of Func(Of T, Boolean))) As T 
    Return _dbContext.Set(Of T).FirstOrDefault(filterExpr)
End Function

次に、以下のように呼び出すことができます。

    Public Function Select() As MyTypeInfo
    dim expr = New Expression(Of Func(Of TableNameClass, Object))() {Function(x) x.Code, Function(x) x.LastModifiedDate, Function(x) x.Title}
    SelectFirstOrDefault(expr)
End Function
于 2014-06-25T07:06:46.507 に答える