[英]Convert sql query to entity framework linq query
我有以下查询
select distinct (case
when object like'%service%' then (object)
when host like '%service%' then (host)
when class like '%service%' then (class)
when parameter like '%service%' then (parameter)
end), (case
when object like'%service%' then 'objet'
when class like '%service%' then 'objet_class'
when host like '%service%' then 'host'
when parameter like '%service%' then 'parametre'
end) from [dbo].[full] where(object <>'NULL' and class<>'NULL' and parameter<>'NULL' and host <>'NULL')
我想知道如何在实体框架中使用linq查询。
.Contains("x")
应该转换为LIKE '%x%'
。
? :
? :
应翻译为CASE WHEN
。
var q = from f in dbContext.Full
where !f.object.Equals("NULL") && !f.class.Equals("NULL") && !f.parameter.Equals("NULL") && !f.host.Equals("NULL")
select new {
f.object.Contains("service") ? f.object :
f.host.Contains("service") ? f.host :
f.class.Contains("service") ? f.class :
f.parameter.Contains("service") ? f.parameter :
null,
f.object.Contains("service") ? "object" :
f.host.Contains("service") ? "host" :
f.class.Contains("service") ? "object_class" :
f.parameter.Contains("service") ? "parameter" :
"N/A"
};
尝试这个:
var temp =
from f in context.full
where f.object != "NULL" && f.class != "NULL" && f.parameter != "NULL"
select new {
service = f.object.Contains("service") ? f.object :
f.host.Contains("service") ? f.host :
f.class.Contains("service") ? f.class :
f.parameter.Contains("service") ? f.parameter,
serviceType = f.object.Contains("service") ? "object" :
f.host.Contains("service") ? "host" :
f.class.Contains("service") ? "object_class" :
f.parameter.Contains("service") ? "parameter"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.