我可以在Linq to SQL中使用C#字符串插值

前端之家收集整理的这篇文章主要介绍了我可以在Linq to SQL中使用C#字符串插值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在使用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}");

猜你在找的MsSQL相关文章