Условия штурвала оцениваются в значениях верхнего родителя:
Условие - поле условия содержит один или несколько путей YAML (разделенных запятыми). Если этот путь существует в значениях верхнего родительского элемента и разрешается в логическое значение, диаграмма будет включена или отключена на основе этого логического значения
blockquote>. Ознакомьтесь с условиями в требованиях. yaml из стабильного / эластичного стека:
- name: elasticsearch version: ^1.17.0 repository: https://kubernetes-charts.storage.googleapis.com/ condition: elasticsearch.enabled - name: kibana version: ^1.1.0 repository: https://kubernetes-charts.storage.googleapis.com/ condition: kibana.enabled - name: logstash version: ^1.2.1 repository: https://kubernetes-charts.storage.googleapis.com/ condition: logstash.enabled
Пути условий:
elasticsearch.enabled
,kibana.enabled
иlogstash.enabled
, поэтому их нужно использовать в значениях родительской диаграммы. [119 ]
Я полагаю, что проблема состоит в том, что Linq/NHibernate пытается отобразить IEntity. Идентификатор к столбцу таблицы вместо TEntity. Идентификатор. У меня была эта проблема с реализацией репозитория LinqToSql. Путь вокруг этого состоял в том, чтобы использовать выражение как это:
private static Expression<Func<TEntity, bool>> GetFindExpression(string propertyName, object value)
{
ParameterExpression parameterExpression = Expression.Parameter(typeof (TEntity), "id");
MemberExpression propertyExpression = Expression.Property(parameterExpression, propertyName);
Expression bodyExpression = Expression.Equal(propertyExpression, Expression.Constant(value));
return Expression.Lambda<Func<TEntity, bool>>(bodyExpression, parameterExpression);
}
Таким образом, это изменилось бы, Добираются (идентификатор) до:
public TEntity Get(int id)
{
var entities = Query.Where(GetFindExpression("Id", id));
return entities.FirstOrDefault();
}
Обновление:
Если Вы не хотите иметь дело с выражениями (они могут быть хитрыми!), Вы могли пользоваться библиотекой Dynamic LINQ, как описано Scott Guthrie здесь: http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx
Это изменилось бы, Добираются (идентификатор) до:
public TEntity Get(int id)
{
var entities = Query.Where("Id = @0", id);
return entities.FirstOrDefault();
}
Я имею, столкнулся с этим в прошлом, и оно обычно сводится к полю в таблице базы данных, которую Вы читаете, не находится в совместимом формате. Как булевские переменные не преобразовывают в целые числа.
Проверьте свои типы поля в таблицу и удостоверьтесь, что они совместимы. Возможно, Ваш столбец Id является BIGINT?
У меня такая же проблема: (
Следующее не работает.
public override T Load(int id)
{
return (from t in _sessionFactory.Session.Linq<T>()
where t.ID == id
select t).SingleOrDefault();
}
Следующее работает!
public override Product Load(int id)
{
return (from t in _sessionFactory.Session.Linq<Product>()
where t.ID == id
select t).SingleOrDefault();
}
Об ошибке сообщили, но еще не исправили:
https://nhibernate.jira.com/browse/NHLQ-11
Я опубликовал простой тестовый пример, чтобы воспроизвести его.
Будем надеяться. он скоро будет рассмотрен!