Sie müssen früher, dass ein Teil des Vorsprungs setzen, die mit einem let
clause leicht:
var name = from x in db.authors
let fullName = x.name + " " + x.surname
where fullName == "Jean Paul Olvera"
orderby x.surname
select new { x.id_author, fullName };
Beachten Sie, dass x.name + " " + x.surname
wird auf den gleichen Code wie String.Concat(x.name, " ", x.surname)
kompiliert werden, aber es ist besser lesbar für die meisten Menschen. Beachten Sie auch, dass Sie nichts außerhalb der ()
Klammern benötigen.
Ich würde hoffe, dass jeder gute SQL LINQ-Anbieter diese Abfrage in eine sinnvolle und effiziente SQL-Abfrage verwandeln sollte, aber Sie sollten dies selbst überprüfen. Auf der anderen Seite würde ich allgemein vorschlagen, die Abfrage über einzelne Felder, z.B.
where x.name == "Jean Paul" && x.surname == "Olvera"
könnte definieren ein Alias für 'fullname'? –
@combo_ci Ich verstehe deine Frage nicht. Genau das macht dieser Code. – cdhowie