Per qualche motivo Microsoft ha deciso di non supportare il concat semplice in EF5.Il modo migliore per concatenare stringhe e numeri nel server SQL utilizzando Entity Framework 5?
ad es.
Select(foo => new
{
someProp = "hello" + foo.id + "/" + foo.bar
}
Questo verrà generato se foo.id o foo.bar sono numeri.
La soluzione che ho trovato è a quanto pare questa bella pezzo di codice:
Select(foo => new
{
someProp = "hello" +
SqlFunctions.StringConvert((double?)foo.id).Trim() +
"/" +
SqlFunctions.StringConvert((double?)foo.bar).Trim()
}
che funziona bene, ma è solo orribile da guardare.
Quindi, c'è un modo decente per realizzare questo con un codice più pulito? NON sono interessato a fare questo lato client, quindi nessuna risposta .AsEnumerable() per favore.
Sono molto confusa sul motivo per cui non avrebbe funzionato ... sei sicuro 'foo' non è' null'? –
Non funziona perché EF non può tradurre integer.ToString() in SQL. –
In questo stadio non penso che abbia nulla a che fare con EF, per quanto riguarda tutto ciò che sta vedendo è un oggetto con una stringa 'someProp'. –