将LINQ转换为SQL [英] converting LINQ to SQL

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

问题描述

大家好,

我是Linq的新手,我想将下面的LINQ查询转换为SQL查询,

Hi All,

I am new to Linq and I want to convert the below LINQ query to SQL query,

from m in (db.ForumMessages.Where(approved = true; AND MessageTypeID =4))
where (db.fAccesses.Where(fa => fa.ForumID == m.Forum.ForumID && db.uGroupUsers.Where(ua => ua.GroupID == fa.UserGroupID && ua.UserID == UserID).Any()).Any())
select m;



请提出任何建议.

谢谢.



any suggestions please.

Thanks.

推荐答案

LINQPad [
LINQPad[^] allows you to convert LINQ queries to SQL queries.

Your query probably looks something like:

<pre lang="sql">select count(1) from ForumMessages fm
inner join fAccessess a on fm.ForumID = a.ForumID
inner join uGroupUsers ua on a.UserGroupID = ua.GroupID
where fm.approved = 1 and fm.MessageTypeID = 4 and ua.UserID = "UserID"




尽管您的linq查询应该更容易编写,如下所示:




Although you linq query should be easier written as followed:

var data = 
from m in db.ForumMessages
join fa in db.fAccesses on m.Forum.ForumID equals fa.ForumID
join ua in db.uGroupUsers on fa.UserGroupID equals ua.UserGroupID
where m.approved && m.MessageTypeID == 4 && ua.UserID == UserID;


好吧,从外观上看,LINQ实际上是SQL,但是,此LINQ是否在您的数据库上运行?你不懂SQL吗?

从ForumMessages fm内部联接中选择* fAccessess on fm.ForumID = a.ForumID,其中fm.approved = 1和fm.MessageTypeID = 4

据我所知.您最好只是查看数据库并编写SQL,而不是尝试从中进行卷积.对于初学者,m似乎具有对象作为属性,我不知道它如何映射到您的数据库.
Well, LINQ is virtually SQL in how it looks, but, is this LINQ operating on your database ? Do you not know SQL ?

select * from ForumMessages fm inner join fAccessess a on fm.ForumID = a.ForumID where fm.approved = 1 and fm.MessageTypeID = 4

That''s as far as I can get. you''re better off just looking at the DB and writing the SQL, instead of trying to convolute it from this. For starters, m seems to have objects as properties, I have no idea how that maps to your DB.


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

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