![](/img/trans.png)
[英]Convert T-SQL to Fluent Linq C# with the same SQL generated output
[英]convert C# Linq to T-Sql
我是一名初級開發人員,嘗試將以下linq語句轉換為T-Sql:
var results = context
.Employees
.Where(item => (dateFilter.ToUpper() == "P") ? item.PublishedDate >= From : item.CapturedDate >= dateFromDT)
.Where(item => (dateFilter.ToUpper() == "P") ? item.PublishedDate <= dateTo : item.CapturedDate <= dateTo)
.FirstOrDefault()
可以幫我嗎?
Select * from Employees where PublishedDate = From and .......
我認為應該是這樣。
Select Top 1 * from Employees
where
(dateFilter = "P" COLLATE Latin1_General_CS_AS AND PublishedDate >= From AND PublishedDate >=dateTo)
OR
(dateFilter != "P" COLLATE Latin1_General_CS_AS AND CapturedDate >= dateFromDT AND CapturedDate >= dateTo)
您可以使用類似於以下內容的方法:
select top 1 *
from employees
where (upper(DateFilter) = 'P' and PublishedDate >= From and PublishedDate <= dateTo)
or (upper(DateFilter) <> 'P' and CapturedDate >= dateFromDT and CapturedDate <= dateTo)
如果DateFilter是表中的一列,則最好跳過上面的那一列,因為它會降低性能(假設該列上有索引)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.