0

Nhibernate create クエリに変換する必要があるストアド プロシージャがあります。プロシージャに CASE 句があります。手順は次のとおりです。

Select * From tDRMaster  
 Where fDate =  
    Case When @Date IS NULL Then (Select Max(fDate) From tDRMaster Where fPropertyID = @PropertyID)  
    Else @Date  
   End  
   And fPropertyID = @PropertyID 
4

1 に答える 1

1
var results = session.CreateCriteria<DrMaster>()
    .Add(Expression.EqProperty("fDate",
        Projections.Conditional(Expression.Eq("Date", null), 
            Projections.SubQuery(DetachedCriteria.For<DrMaster>()
                .Add(Expression.EqProperty("fPropertyId", "PropertyId"))
                .SetProjection(Projections.Max("fDate"))),
            Projections.Property("Date"))))
    .Add(Expression.EqProperty("fPropertyId", "PropertyId"))
    .List<DrMaster>();
于 2013-06-11T05:29:11.030 に答える