Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在NHibernate中执行内部联接_C#_Nhibernate - Fatal编程技术网

C# 在NHibernate中执行内部联接

C# 在NHibernate中执行内部联接,c#,nhibernate,C#,Nhibernate,在NHibernate中进行查询时,我不断遇到异常 这是以下查询: //Query tblSentEmails to pull out all of the records according to that lngMergeID strQuery = "SELECT strEmailAddress, tblSentEmails.strSubject FROM tblSentEmails INNER JOIN tblRec

在NHibernate中进行查询时,我不断遇到异常

这是以下查询:

 //Query tblSentEmails to pull out all of the records according to that lngMergeID
                strQuery =
                    "SELECT strEmailAddress, tblSentEmails.strSubject FROM tblSentEmails INNER JOIN tblRecipients ON tblSentEmails.strEmailSendID=tblRecipients.strEmailSendID WHERE tblSentEmails.lngMergeID ='" +
                    lngMergeID + "' ORDER BY strEmailAddress ASC";
这是执行它的行

IQuery qryGetMergedEmails = _session.CreateSQLQuery(strQuery);
在这之后,我不断得到一个异常,说明有一个识别错误

这是原始查询:

SELECT strEmailAddress, tblSentEmails.strSubject
FROM tblSentEmails INNER JOIN tblRecipients
ON tblSentEmails.strEmailSendID=tblRecipients.strEmailSendID
WHERE tblSentEmails.lngMergeID='11099'
ORDER BY strEmailAddress ASC
请注意,lngMergeID='11099'仅用于此示例,我将通过参数传递它

我是否正确运行此查询

编辑:这是我的映射:

 public tblSentEmailsMap()
    {
        //Id(x => x.lngEmailID);
        Id(x => x.strEmailSendID).Not.Nullable();
        Map(x => x.dtmSent).Nullable(); 
        Map(x => x.strSubject).Nullable();
        Map(x => x.strBody).Nullable();
        Map(x => x.strConversationID).Nullable();
        Map(x => x.strConversationTopic).Nullable();
        Map(x => x.strConversationIndex).Nullable();
        Map(x => x.dtmReplied).Not.Nullable();
        Map(x => x.dtmOpened).Not.Nullable();
        Map(x => x.dtmClicked).Not.Nullable(); 
        Map(x => x.UserId).Not.Nullable();
        Map(x => x.blnTrackOpens).Nullable();
        Map(x => x.blnTrackClicks).Nullable();
        Map(x => x.blnTrackReplies).Nullable();
        Map(x => x.blnOutlookRec).Nullable();
        Map(x => x.lngMergeID).Nullable();
        Map(x => x.strSenderEmailAddress).Not.Nullable();
    }
没有指向“我的收件人”表的属性链接。只需从电子邮件表中获取PK,并通过不同的查询处理器添加即可

试试这个

var list = session.QueryOver<tblSentEmails >().JoinQueryOver(tblsentsmails =>
tblsentsmails.tblrecipients ).Where(tblsentsmails => tblsentsmails.lngMergeID == 11099)
.OrderBy(tblsentsmails =>tblsentsmails.strEmailAddress ).List();
var list=session.QueryOver().JoinQueryOver(tblsentsmails=>
tblsentsmails.tblrecipients)。其中(tblsentsmails=>tblsentsmails.lngMergeID==11099)
.OrderBy(tblsentsmails=>tblsentsmails.strEmailAddress).List();

Nevermind最终使用了以下功能:

                    strQuery = "SELECT strEmailAddress, strSubject from tblSentEmails INNER JOIN tblRecipients ON tblSentEmails.strEmailSendID=tblRecipients.strEmailSendID WHERE tblSentEmails.lngMergeID=:mergeID ORDER BY strEmailAddress ASC";
                var qry = _session.CreateSQLQuery(strQuery)
                    .SetParameter("mergeID", lngMergeID)
                    .List();

结果一切正常。也许不是最好的解决方案,但现在已经足够了

忘了提及,tblRecipients@FerasI的tblSentEmails中没有任何属性已经解决了这个问题,但感谢您的输入。看看我贴的答案。