エンティティへのLinqでは、標準のC#メソッドを使用して "select"節の結果を変更することはできません。標準関数が必要です。選択内のエンティティカスタム関数へのLinq
私は、このようなクエリを起動する必要があります。
CoreEntities.Contracts.Select(
c=> new {
c.Name,
c.Type,
Role = MapToRole(c));
private string MapToRole(Contract contract) {
switch(contract.Type) {
case: CTypes.Main: return "somerole1";break;
case: CTypes.Secondary: return "somerole2";break;
// ...
default: break;
}
return "none";
}
"MapToRoleは" ちょうどLINQクエリをdeclutterするために作成したC#の方法です。
Entity Framework "linq to Entity"パーサーが受け入れるカスタムC#関数を作成する方法はありますか?
私はクエリフィルタのためのソリューションを見つけましたが、データフォーマットはありませんでした。
MapToRoleメソッドを質問に追加できますか? – Oliver
MapToRoleには、単純なif/else/switch文があります。 –
MapToRoleをlamba式に変換できる場合(条件付き演算子などを使用)、LINQKitを使用してラムダをクエリにマップできます。 – NetMage