【发布时间】:2015-01-13 10:13:33
【问题描述】:
我需要将此 sql 转换为 LINQ
select ud.HindQues, mm.misc_desc
from Account.miscMast mm,Account.userDetails ud
where mm.misc_type='SECQUE' and mm.misc_code=ud.HindQues and ud.UserID='Test'
这个我试过了,但是出错了
using (extractDataContext contex=new extractDataContext())
{
var query = (from hq in contex.miscMasts
join ud in contex.userDetails on
new { hq.misc_code }
equals new {ud.HindQues } where
hq.misc_type == "SEC001" orderby hq.sort_order
select new { hq.misc_code, hq.misc_desc });
ddlHintQues.DataSource = query;
ddlHintQues.DataValueField = "misc_code";
ddlHintQues.DataTextField = "misc_desc";
ddlHintQues.DataBind();
}
【问题讨论】:
-
什么错误?没有必要猜测。
-
为什么要将它转换为 LINQ?如果两个实体相关,则只需加载父实体。如果这是一个存储过程,您可以从您使用的任何 ORM 中调用它。如果这是考试,请尝试重写原始 SQL 语句以使用 INNER JOIN 来连接两个表,而不是
WHERE。等效的 LINQ 语句会更容易找到 -
应该有一个列作为连接的基础。这是哪个专栏?我指的是上面提到的这个Panagiotis。如果您将查询重写为
INNER JOIN,您应该为ON ... = ....写什么 -
嗨 Steen,Panagiotis 实际上我有两个表,例如 userdetails 和 miscmast ,在这两个表中,我将描述放在 miscmast 表中,并且两个表中都将存在相同的代码,例如 SEC001 存在于两个表现在我想进行内部连接,以便从 miscmast 表中获取描述
标签: c# sql asp.net sql-server linq