我需要以下条件(在SQL中)来填充结果集中的特定字段:
CASE
WHEN M.ID_ENTIDAD = m.ID_ENTIDAD_VENTA then EC.CLAVE_ENTIDAD
END AS Contraparte }
如果我使用
var contraparte = Projections.Conditional(
Restrictions.EqProperty("EntidadOwner", "EntidadVenta"),
Projections.Property("enc.CvePrincipalMiembro"),
null);
返回一个错误。
如果我使用:
*var contraparte = Projections.Conditional(
Restrictions.EqProperty("EntidadOwner", "EntidadVenta"),
Projections.Property("enc.CvePrincipalMiembro"),
Projection.Constant(a constant value);*
显然,如果没有ELSE部分,就不可能使用此Conditional。即nhibernate不能在没有ELSE部分的情况下生成CASE。
这是可能的吗??请帮帮我!!!
感谢
好的。我发现自己得到了回应。
我采取了两个行动:
首先,在查询中使用的映射类中添加以下伪字段:
Map(x => x.Dummy).Nullable().Formula("NULL");
第二:我用以下代码修改了条件投影:
var contraparte = Projections.Conditional(
Restrictions.EqProperty("EntidadOwner", "EntidadVenta"),
Projections.Property("enc.CvePrincipalMiembro"),
Projections.Property("Dummy"));
仅此而已!我希望这能帮助另一个有同样问题的人。