C#实体框架字符串规范函数
如何在实体框架查询中使用C#实体框架字符串规范函数,c#,sql,sql-server,entity-framework,C#,Sql,Sql Server,Entity Framework,如何在实体框架查询中使用Right功能? 我有一个sql查询 SELECT RIGHT('0' + '4'), DATEDIFF(MINUTE, DateReceived, GETDATE()) % 60), 2) FROM mytable //RESULTS = 04 如果传递的字符串长度小于2,则Right函数基本上将在前面添加0 现在我想在实体框架查询中做同样的事情: var query = (from b in sovDB.myTable select new { myMi
Right
功能?
我有一个sql查询
SELECT RIGHT('0' + '4'), DATEDIFF(MINUTE, DateReceived, GETDATE()) % 60), 2)
FROM mytable //RESULTS = 04
如果传递的字符串长度小于2,则Right
函数基本上将在前面添加0
现在我想在实体框架查询中做同样的事情:
var query = (from b in sovDB.myTable
select new
{
myMinutes = Right("0"+ (SqlFunctions.DateDiff("MINUTE", b.DateReceived,
SqlFunctions.GetDate()) % 60),2)
}).ToList();
但它不起作用,不知何故,
Right
函数不受支持。尝试将计算分钟显式转换为字符串:
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();
尝试将计算的分钟数显式转换为字符串:
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();
只是在将旧存储过程转换为实体时遇到了同样的问题。我使用了SqlFunctions.Replicate,这个技巧和实体框架没有任何问题
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();
只是在将旧存储过程转换为实体时遇到了同样的问题。我使用了SqlFunctions.Replicate,这个技巧和实体框架没有任何问题
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();
SQL中的括号看起来不平衡。我不确定EF是否支持隐式类型转换:
“0”
(字符串)+(SqlFunctions.DateDiff(“分钟”,b.DateReceived,SqlFunctions.GetDate())%60)
(int)。确切的错误消息是什么?SQL中的括号看起来不平衡。我不确定EF是否支持隐式类型转换:“0”
(字符串)+(SqlFunctions.DateDiff(“分钟”,b.DateReceived,SqlFunctions.GetDate())%60)
(int)。确切的错误消息是什么?