У меня есть класс, используемый Entity Framwork, который называется EFApplication
.OData and Entity Framework разные моделирование
this link, я хочу добавить OData
запрос к моему контроллеру Web Api
.
Однако, я не хочу использовать класс EFApplication
в качестве параметров запроса.
Я хочу использовать другой класс, который используется только для OData
запросов (ODataApplication
)
Возможно ли это?
Одна из причин, я хочу использовать другой класс, потому что OData
не поддерживает DateTime
свойства, и это означает, что мне нужно изменить его DateTimeOffset
, что я не могу это сделать (не нарушая много других вещей)
// class mapped to Entity Frameowrk/Database
public class EFApplication
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual DateTime DateCreated { get; set; }
}
// class used for OData querying only
public class ODataApplication
{
public Guid Id { get; set; }
public string Name { get; set; }
}
public class ApplicationsController : ApiController
{
[EnableQuery]
public IQueryable<EFApplication> Get(ODataQueryOptions<ODataApplication> options)
{
// how to apply ODataQueryOptions<ODataApplication> query on top of EFApplication
return result; // IEnumerable<EFApplication>
}
}
Одним из возможных решений для заполнения EdmModel вручную на основе класса EFApplication но игнорировать 'DateTime' поле. Тогда вы сможете использовать его OData –
Можете ли вы привести пример? – Catalin