将SQL查询转换为实体框架-LINQ查询 [英] convert sql query to entity framework - linq query

查看:109
本文介绍了将SQL查询转换为实体框架-LINQ查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用以下查询.
但是我在Convert.ToInt16()中遇到了错误.
在数据库字段中,powerplatecapacity的数据类型为nvarchar.
我想检查一下情况.
我的代码如下.

来自 _power in 中的

I am using following query.
But i got error in Convert.ToInt16().
In database field powerplatecapacity data type is nvarchar.
I want to check betwwen condition.
My code is like following.

from _power in dataContext.Powers
                         join _powerFuelTypes in dataContext.PowerFuelTypes on _power.ID equals _powerFuelTypes.PowerID into list1
                         from l1 in list1.DefaultIfEmpty()
where (Convert.ToInt16(_power.PowerPlateCapacity) >= 0 && Convert.ToInt16_power.PowerPlateCapacity) <= 100)

推荐答案

这在LinqPad中正常运行:
This is working properly in LinqPad:
var vs = from v in "10 12 100 33".Split() select v;
vs.Dump();

var x = from v in vs where Convert.ToInt16(v)>90 select v;
x.Dump();


但是我对您的查询有些困惑.选择进入 list1,然后从中选择.您为什么认为_power属于该查询的范围?我很确定您正在使查询复杂化.这不是最佳实践,但请首先尝试将此查询视为sql查询:您将如何制定它?


But I am a little bit confused about you query. You select into list1, than you select from it. Why do you think that _power will be in scope of that query? I am pretty sure you are complicating the query. It is not best-practice, but try to think of this query as sql query first: how would you formulate it?


这篇关于将SQL查询转换为实体框架-LINQ查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆