В файле application.properties или файле yaml проверьте spring.datasource.url и удалите флаг IFEXISTS = TRUE;.
Если флаг установлен в true, соединение устанавливается только при наличии базы данных. Для ссылки на флаг см. http://www.h2database.com/html/features.html#database_only_if_exists
Файл свойств приложения должен выглядеть следующим образом
application.properties
h2.datasource.driver-class-name=org.h2.Driver
h2.datasource.url=jdbc:h2:file:~/test;DB_CLOSE_ON_EXIT=TRUE;FILE_LOCK=NO
h2.datasource.username=sa
h2.datasource.password=
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console/
Выглядит как показано ниже (Тестовое соединение успешно)
Я не уверен, что вы хотите получить. Список клиентов с интересом клиента и интерес? Просто запустите запрос на интерес клиента.
context.CustomerInterest.
Where(ci => ci.Interest.InterestName == "Football").
Select(ci => new
{
Customer = ci.Customer,
CustomerInterest = ci,
Interest = ci.Interest
});
Но это очень избыточно. Почему бы просто не получить совпадающие интересы клиентов?
IEnumerable<CustomerInterest> customerInterests = context.CustomerInterest.
Where(ci => ci.Interest.InterestName == "Football");
Вы по-прежнему можете обращаться к другой информации без необходимости ее явного сохранения.
foreach (CustomerInterest customerInterest in customerInterests)
{
DoSomething(customerInterest);
DoSomething(customerInterest.Customer);
DoSomething(customerInterest.Interest);
}
Если вы пытаетесь сделать его универсальным, лучше использовать сущность sql [Esql]. Coz L2E не поддерживает где для коллекций в запросе linq.
Нельзя использовать
customer.Interests.Where (интереса => интереса. Имя == 'FootBall')
Запрос будет выглядеть следующим образом. .
context.CreateQuery (@ "SELECT VALUE Customer
ОТ клиента, ГДЕ ЕСТЬ (ВЫБЕРИТЕ ЗНАЧЕНИЕ ИЗ CustomerInterest ГДЕ CustomerInterest.Ineterest.Name = 'FootBall')). Включить ("Проценты");
надеюсь, это поможет!
Это много для LINQT. Попробуйте использовать представление в своей базе данных или работайте, как сказал Дипак Н. Лучшее
Try this,
var result = from c in ctx.Customer
from i in c.Interest
where i.InterestName == "Football"
select c;
Hope this helps,
Ray.