Вы правы, что класс курса (-ов) должен содержать ICollection of Student. Я думаю, что URL-адрес должен быть примерно таким:
http://localhost:61565/Odata/Student
?$select=Student_Id,FirstName
&$expand=Courses(
$select=Course_Id,CourseName;
$expand=Students(
$select=Student_Id,FirstName))
Вот пример конечной точки OData в реальном времени:
https://demos.telerik.com/kendo-ui/service-v4/odata/Categories
?$top=20
&$select=CategoryName
&$expand=Products(
$select=ProductName,Category;
$expand=Category(
$select=CategoryName))
Какую ошибку вы получаете?
Присяжный острослов 2
if ($smarty->get_template_vars('foo') === null)
{
$smarty->assign('foo', 'some value');
}
Присяжный острослов 3
if ($smarty->getTemplateVars('foo') === null)
{
$smarty->assign('foo', 'some value');
}
Обратите внимание, что для Присяжного острослова 3, необходимо будет использовать $smarty->getTemplateVars
вместо этого.
get_template_vars()
возвратит пустой указатель, если Вы не установили переменную, таким образом, можно сделать
if ($smarty->get_template_vars('test') === null) {
echo "'test' is not assigned or is null";
}
Однако та проверка перестанет работать, если Вам присвоят переменную, но установите как пустой указатель, в этом случае Вы могли бы сделать
$tmp = $smarty->get_template_vars();
if (!array_key_exists('test', $tmp)) {
echo "'test' is not assigned";
}
Вполне уверенный можно сделать:
if (!isset($smarty['foo']))
{
$smarty->assign('foo', 'some value');
}