किसी Projections.Conditional उपयोग करने के लिए कैसे की तरह कुछ का निर्माण करने के जानता है "मामले ... जब ..."अनुमान। शर्त - इसका उपयोग कैसे करें?
निम्नलिखित कोड एक गलत क्वेरी देता है:
IProjection isError = Projections.Conditional(Expression.Eq("event.LogLevel", eLogLevel.Fatal.ToString()), Projections.Constant(1), Projections.Constant(0));
ICriteria criteria = Session.CreateCriteria(typeof(LogEvent), "event")
.Add(Restrictions.Eq("event.ApplID", "LogEventViewer"))
.SetProjection(Projections.ProjectionList()
.Add(Projections.GroupProperty("event.ApplID"))
.Add(Projections.RowCount(), "TotalCount")
.Add(Projections.Sum(isError), "ErrorCount")
);
उत्पादित बयान अधूरा है और पैरामीटर का क्रम गलत है।
exec sp_executesql N'
SELECT this_.strApplID as y0_
, count(distinct this_.lngLogEventID) as y1_
, sum((case when this_.strLogLevel = ? then ? else ? end)) as y2_
, this_.strApplID as y3_
FROM qryLogEvent this_
WHERE this_.strApplID = @p0
GROUP BY this_.strApplID'
,N'@p0 nvarchar(5),@p1 int,@p2 int,@p3 nvarchar(14)'
,@p0=N'Fatal',@p1=1,@p2=0,@p3=N'LogEventViewer'
अनुमानों का उपयोग करने का सही तरीका क्या है। शर्त?
मैं इसे एक बग है लगता है: यह आदेश के रूप में यहाँ desribed, हालांकि यह समस्या हल हो जाना चाहिए था को खराब करता। मैंने सभी तरीकों से भी कोशिश की है, और पैरामीटर का क्रम उलझा हुआ है। आप एनएच का किस संस्करण का उपयोग कर रहे हैं? – asgerhallas