Die einzige Option, die ich gefunden - ist so etwas wie schlechte Problem zu umgehen, und ich denke, das ist auf einfache Abfragen beschränkt.
var objectContext = ((IObjectContextAdapter)DbContext).ObjectContext;
var query = (System.Data.Objects.ObjectQuery)objectContext.CreateObjectSet<User>().Where(u => u.Id != Guid.Empty);
var initialQueryString = query.ToTraceString();
var resultQueryString = initialQueryString + " order by [dbo].[MySQLFunction]";
//careful here, if you use MS SQL you need to use SqlParameter instead of NpgsqlParameter
var paramValues = new List<NpgsqlParameter>();
foreach (var param in query.Parameters)
{
paramValues.Add(new NpgsqlParameter(param.Name, param.Value));
}
var result = objectContext.ExecuteStoreQuery<User>(resultQueryString, paramValues.Cast<object>().ToArray()).ToList();
Ich denke, Sie sollten in diesem Fall rohe Abfrage verwenden. http://stackoverflow.com/questions/18096519/entity-framework-raw-sql-query – vmeln
Ich bin ziemlich sicher, dass dies nicht möglich ist, und Sie können nicht LINQ/Delta-Notation mit SQL mischen, obwohl Sie SQL-Abfragen über verwenden können EF. Können Sie Ihre SQLFunction als C# -Funktion hinzufügen? –
Ich muss die gleichen Daten mit Paging nehmen, aber es sollte nach komplexer Funktion sortiert werden. Ich denke, ich könnte es in mehrere komplexe Ausdrücke schreiben, kann aber nicht zu einem Ausdruck verschmelzen. – foxiter