(これは、SQL Serverが計算を行うことがあります):私は(動的に許可するのFunc変数または変数のいくつかの他の種類から、私のselect文の一部を作成したいと思う何EF + LINQ:Select文の一部を定義するために変数(多分Func変数)を定義して利用するにはどうすればよいですか?変数を使用する前
IQueryable<MyEntity> query = _dbSet; // IQueryable<TEntity>
var results = query.Select(m => new MyViewModel
{
MyCalculation = m.Column1 * m.Column2
}).ToList();
この):
IQueryable<MyEntity> query = _dbSet; // IQueryable<TEntity>
Func<MyEntity, decimal> funcVariableAttempt = m => m.Column1 * m.Column2;
var results = query.Select(m => new MyViewModel
{
MyCalculation = funcVariableAttempt.Invoke(m) // My foolish attempt does not work.
}).ToList();
私は()私の愚かな試み別名欲しいものをしようとすると、私が取得エラー:エンティティへ
LINQは方法「System.DecimalのINVOを認識しません。 ke(MyProject.Repository.Models.MyEntity) 'メソッドであり、このメソッドをストア式に変換することはできません。
Select文の一部を定義するために変数(多分Func変数)を定義して利用するにはどうすればよいですか?
あなたがのFuncを使用することはできません、それはSQL層に渡すことはできません。 – Gusman
埋め込みに使用できるライブラリ[LinqKit](http://www.albahari.com/nutshell/linqkit.aspx)[この回答を見る](https://stackoverflow.com/q/42067722/5951133) 'Expression>' 'IQueryable' –