Не уверен, что это проблема с Breeze или ODATA.BreezeJS/ODATA: Броски могут выполняться только для типов объектов
У меня следующее сообщение об ошибке при выполнении моего OData запроса:
The child type 'job.volume' in a cast was not an entity type. Casts can only be performed on entity types.
Фильтр выглядит следующим образом:
$ Фильтр: (JobGroup/JobJobGroup/любая (x1: x1 /job.volume экв 10d))
где положение построен с использованием нотации JSON:
{ "jobGroup.jobJobGroup": { "any": { "job.volume": { "eq": 10 } } } }
Модель (только соответствующая часть):
public class WorkflowTask
{
public virtual JobGroup JobGroup { get; set; }
}
public class JobGroup
{
public virtual IList<JobJobGroup> JobJobGroup { get; set; }
}
public class JobJobGroup
{
public virtual Job Job { get; set; }
public virtual Guid JobId { get; set; }
public virtual JobGroup JobGroup { get; set; }
public virtual Guid JobGroupId { get; set; }
}
public abstract class Job
{
public virtual Decimal Volume { get; set; }
}
public class JobEditing : Job
{
}
Может ли это быть связано с классом работы будучи реферата?
конечно есть. Ошибка указывает, что тип child не является типом сущности, а это значит, что у вас нет для него «DbSet», что имеет смысл, так как является абстрактным. Как вы можете запрашивать данные в запросе, который передается в базу данных из объекта, который не существует в базе данных? – Claies
Конечно, у меня есть класс Job, сопоставленный с таблицей в базе данных. Он отлично работает во всех сценариях, но этот. Я редактировал мой OP с другим классом, наследующим от Job. – Sam