Проверить, существует ли объект в базе данных без загрузки объекта с помощью NHibernate

Вы не можете, в Java классы не могут наследовать от двух классов одновременно. Только один. Учитывая ваш адаптер уже extends RecyclerView.Adapter, то вы не можете.

Рекомендуется использовать обратный вызов . Обратный вызов - это interface, то есть implements для активности или фрагмента хоста и передаваемый в качестве аргумента другому классу (в данном случае адаптеру). Ваш адаптер будет содержать ссылку на обратный вызов, поэтому при щелчке по представлению будет вызываться ссылка, запускающая реализацию действия или фрагмента.

Вы можете увидеть подробное объяснение здесь

  1. Когда произойдет щелчок, из действия начните намерение камеры
  2. После того, как фотография сделана внутри onActivityResult по активности передайте результат адаптеру
  3. Адаптеру нужен метод для получения результата, он должен быть примерно таким
public void addPhoto(SomeObject object){
    yourData.add(object);
    notifyDataseChanged();
}
  1. Код внутри onActivityResult должен выглядеть примерно так
SomeObject objet = data... //you have to get the data and transform it to your format
adaper.addPhoto(object)

22
задан Toby Artisan 19 August 2010 в 20:14
поделиться

3 ответа

Всегда можно сделать подсчет.

Я склонен использовать DetachedCriteria, поэтому я бы сделал что-то вроде:

var criteria = // some criteria that will identify your object

var result = criteria
    .GetExecutableCriteria(Session)
    .SetProjection(Projections.RowCountInt64())
    .UniqueResult();

return result > 0;
9
ответ дан 29 November 2019 в 03:55
поделиться

Я создал дополнительный метод из ответов выше. Я принимаю решение использовать Любую версию, но с Выбором на первичном ключе будет возвращен тот же объем данных, зависят от типа первичного ключа.

public static bool Exists<TModel, TKey>(
    this IQueryable<TModel> query, Expression<Func<TModel, TKey>> selector, TKey id)
    where TKey : class
{
    return query
        .Select(selector)
        .Any(x => x == id);
}

public static Task<bool> ExistsAsync<TModel, TKey>(
    this IQueryable<TModel> query, Expression<Func<TModel, TKey>> selector, TKey id)
    where TKey : class
{
    return query
        .Select(selector)
        .AnyAsync(x => x == id);
}
0
ответ дан 29 November 2019 в 03:55
поделиться

Думаю, вы ищете это ...

var fooExists = session.Query<Foo>().Any(f => /*condition*/);
3
ответ дан 29 November 2019 в 03:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: