有人可以帮助我将这个MySQL查询转换为Entity Framework吗? 我在ASP .NET项目中使用它,但我只知道如何在Entity Framework中进行基本查询。这似乎太复杂了,我现在已经很多个小时都找不到工作的解决方案......
$rs = mysql_query("SELECT barcode,latitude,longitude,date_time,location_name
FROM sDetails
JOIN users on (users.id=sDetails.UserId)
WHERE (latitude and longitude is not null)
and (latitude <> 100000 and longitude <> 100000)
and id='$UserId'
ORDER BY date_time desc");
答案 0 :(得分:1)
假设您已从数据库生成实体框架模型,您应该能够执行类似(c#示例)的操作:
var q = context.Details.Where( d => d.UserId = "$UserID" ).
Where( d => d.latitude.HasValue && d.latitude != 100000 && .. etc ).
OrderByDescending( d => d.date_time ).
Select( d => new {d.barcode, d.latitude, d.longitude, etc ... };
我不确定您为什么要加入,因为您没有从用户表中选择任何内容。
答案 1 :(得分:0)
谢谢@Phil 您上面提供的代码似乎主要起作用,但它仍然显示错误 var q = context。 ScanDetails .Where
错误3:'System.Web.HttpContext'不包含的定义 'ScanDetails'并且没有扩展方法'ScanDetails'接受第一个 可以找到类型'System.Web.HttpContext'的参数(是吗? 缺少using指令或程序集引用?)
这是我到目前为止的代码:
public class read : IHttpHandler
{
sqlEntities _db = new sqlEntities();
public bool IsReusable { get { return true; } }
public void ProcessRequest(HttpContext context)
{
//Write out the JSON you want to return.
var q = context.ScanDetails.Where( d => d.UserId = "1" ).
Where( d => d.latitude.HasValue && d.latitude != 100000 ).
OrderByDescending( d => d.date_time ).
Select( d => new {d.barcode, d.latitude, d.longitude };
// stuff to do here
}
public IQueryable<ScanDetail> scanData { get; set; }
}