[英]C# entity framework String Canonical Functions
如何在實體框架查詢中使用Right
函數? 我有這個SQL查詢
SELECT RIGHT('0' + '4'), DATEDIFF(MINUTE, DateReceived, GETDATE()) % 60), 2)
FROM mytable //RESULTS = 04
如果傳遞的字符串的長度小於2,則Right
函數基本上將infront添加0
。
現在我想在實體框架查詢中做同樣的事情:
var query = (from b in sovDB.myTable
select new
{
myMinutes = Right("0"+ (SqlFunctions.DateDiff("MINUTE", b.DateReceived,
SqlFunctions.GetDate()) % 60),2)
}).ToList();
但是它不起作用,某種程度上不支持Right
函數。
將舊的存儲過程轉換為實體時遇到了同樣的問題。 我使用了SqlFunctions.Replicate來達到目的,而Entity Framework沒有任何抱怨!
var query = (from b in sovDB.myTable
select new
{
myMinutes = SqlFunctions.Replicate("0", 2 - (SqlFunctions.DateDiff("MINUTE", b.DateReceived, GetDate()) % 60).Length) + (SqlFunctions.DateDiff("MINUTE", b.DateReceived, GetDate()) % 60)
}).ToList();
嘗試將計算的分鍾數顯式轉換為字符串:
var query = (from b in sovDB.myTable
select new
{
myMinutes = Right("0" + SqlFunctions.StringConvert((int)(SqlFunctions.DateDiff("MINUTE", b.DateReceived, SqlFunctions.GetDate()) % 60)), 2)
}).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.