我最近遇到了一种情况,我需要在我的一个表中获得最小的可用整数。
我有以下简单的SQL查询
SELECT MIN(t1.system + 1) AS nextSystem
FROM mytable t1
LEFT JOIN mytablet2
ON t1.system + 1 = t2.system
WHERE t2.system IS NULL
但我不能使用它,因为
所以,简单来说, 我需要得到两列中都没有的最小整数
答案 0 :(得分:0)
使其工作的一个选择是使用SqlQuery
方法:
http://msdn.microsoft.com/en-us/library/system.data.entity.database.sqlquery%28v=vs.103%29.aspx
您可以构建原始SQL并在不使用LINQ的情况下执行它。以下是使用T-SQL的示例:
using (var ctx = new Entities())
{
var query =
ctx.Database.SqlQuery<int>(
"SELECT TOP 1 t1.Id+1 FROM MyEntities t1 WHERE NOT EXISTS(SELECT * FROM MyEntities t2 WHERE t2.Id = t1.Id + 1) ORDER BY t1.Id");
var res = query.First();
}
或者,如果您不想在数据层中嵌入SQL,则可以使用SqlQuery方法执行存储过程。