NHibernate 32 için FreeTextExpression etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
NHibernate 32 için FreeTextExpression etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

11 Mayıs 2018 Cuma

NHibernate 3.2 için FreeTextExpression

NHibernate 3.2 için FreeTextExpression


 


[Serializable]
public class FreeTextExpression : AbstractCriterion


private readonly string _propertyName;

private readonly object _value;

private readonly IProjection _projection;

///


/// Initializes a new instance of the class.

///


///The projection. ///The value. public FreeTextExpression(IProjection projection, object value)


_projection = projection;

_value = value;


///


/// Initialize a new instance of the

/// class for a named Property and its value.

///


///The name of the Property in the class. ///The value for the Property. public FreeTextExpression(string propertyName, object value)


_propertyName = propertyName;

_value = value;


public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary<string, IFilter> enabledFilters)


var sqlBuilder = new SqlStringBuilder();

var columnNames = CriterionUtil.GetColumnNames(_propertyName, _projection, criteriaQuery, criteria, enabledFilters);


if (columnNames.Length != 1)


throw new HibernateException(“Contains may only be used with single-column properties”);


sqlBuilder.Add(“freetext(“)

.Add(columnNames[0])

.Add(“,”);


sqlBuilder.Add(criteriaQuery.NewQueryParameter(GetParameterTypedValue(criteria, criteriaQuery)).Single());

sqlBuilder.Add(“)”);


return sqlBuilder.ToSqlString();


public override TypedValue[] GetTypedValues(ICriteria criteria, ICriteriaQuery criteriaQuery)


var typedValues = new List();


if (_projection != null)


typedValues.AddRange(_projection.GetTypedValues(criteria, criteriaQuery));


typedValues.Add(GetParameterTypedValue(criteria, criteriaQuery));


return typedValues.ToArray();


public TypedValue GetParameterTypedValue(ICriteria criteria, ICriteriaQuery criteriaQuery)


var matchValue = _value.ToString();

if (_projection != null)


return CriterionUtil.GetTypedValues(criteriaQuery, criteria, _projection, null, matchValue).Single();


return new TypedValue(NHibernateUtil.String, _value.ToString(), EntityMode.Poco);


public override IProjection[] GetProjections()


if (_projection != null)


return new [] _projection ;


return null;


public override string ToString()


return ” freetext(” + (_projection ?? (object)_propertyName) + “,” + _value + “)”;



NHibernate 3.2 için FreeTextExpression