簡體   English   中英

C#實體框架字符串規范函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM