EF(少なくともバージョン6.1.3まで)を使用している間、次のようなクラスがあると仮定します。
class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
クエリ結果のフィールドとしてFullName
(FirstName
とLastName
)の両方を連結したフィールドを取得する場合は、次のようにする必要があります。
db.Customers.Select(c => new { FullName = c.FirstName + " " + c.LastName })
C#に文字列補間があるので、代わりにこのようなことを行うことができますか
db.Customers.Select(c => new { FullName = $"{c.FirstName} {c.LastName}" })
これは些細な例のように思えるかもしれませんが(それはそうです)、疑問は残ります。
これを箱から出して使用できますか?それを機能させるためにいくつかのトリックを行う必要がありますか、それとも機能しないと確信していますか?
私はそうは思わないでしょう、いや。それはまでコンパイルよstring.Format
、私はしません呼び出し、期待サポートします。あなたがいる場合、実際にSQLの一部で行われる投影を必要とする、あなたはそれをテストすることができ...しかし、そうでない場合は、使用、通常のようにAsEnumerable()
クエリの一部を終えたときには、使用するデータベースで実行する必要があり、その後、Select
その後:
var query = db.Customers
// Project to just the properties we need
.Select(c => new { c.FirstName, c.LastName })
// Perform the rest of the query in-process
.AsEnumerable()
.Select(c => $"{c.FirstName} {c.LastName}");
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加