c# - 如何将sql查询转换为实体框架查询
问题描述
我现在有一个 SQL,我想将其转换为实体框架查询。请检查下面的代码。这对我来说似乎有点令人困惑。任何人都可以帮我将此查询转换为 c# entityframework 样式吗?
SQL:
select TOP 10 CAST(RIGHT(ML_ItemId, LEN(ML_ItemId) - 3) as bigint) as PrimaryKey
from ThirdPartyData
where site_id='MLA' AND IsGapChecked IS NULL
order by PrimaryKey DESC
C#
using (var ctx = new ML_DbEntities())
{
var Data = ctx.ThirdPartyData.Take(10).ToList(); //how can i write query here?
}
解决方案
您想将查询转换为 LINQ。为此,我强烈推荐LINQPad。它有很多内置教程,您可以在不编译的情况下测试您的查询。如果没有看到你类中的数据类型,我无法确定ThirdPartyData
,但对于这个查询,你可能想要如下。
using (var ctx = new ML_DbEntities())
{
var data = from item in ctx.ThirdPartyData
where item.site_id == "MLA" && !IsGapChecked.HasValue
let PrimaryKey = item.ML_ItemId.Right(item.ML_ItemId.Length - 3) as long
orderby PrimaryKey
select PrimaryKey;
var top10 = data.Take(10);
}
另外,我强烈建议不要使用ToList
. 它很少需要,并且会导致严重的性能问题。
推荐阅读
- android - 如何更改 Google Analytics(分析)媒体资源中的跟踪 ID
- javascript - menu.on('click', function() 解释
- oracle - ORACLE 使用 SERIALIZABLE 到 PL/SQL 以下载一致的数据
- regex - 我们可以在 NotePad++ 中搜索必须在同一行中的 2 个字符串吗?
- c# - 如何在 dotnet core 中操作浏览器?
- java - Lombok onlyExplicitlyIncluded 配置键
- python - 关闭()后无法删除python文件
- php - PHP多维数组具有另一个多维数组的所有子数组
- python-3.x - 如何找出列表中的值索引?
- c++ - 涉及上限和下限的问题