0
C#Web.Api OData的应用探析如何的OData使用自定义类v4的,而不是从designer.cs类
我执行的OData V4的第一次,想用我自己的自定义类,而不是来自设计者的数据类。
这里是我做过什么:
我在视觉工作室创建的数据项目,并添加我的SQL的LINQ数据表中的“视频”
我创建的数据上下文如下:
public class VideoDataContext : DbContext
{
public VideoDataContext(): base("name=VideoData")
{
DbSet<VideoEf> Videos { get; set; }
}
和我的自定义类如下:
[Serializable]
[DataContract]
public class VideoEf : Repository
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string Isrc { get; set; }
}
和模型生成器:
public Microsoft.OData.Edm.IEdmModel GetEdmModel()
{
ODataModelBuilder builder = new ODataConventionModelBuilder();
EntityTypeConfiguration<VideoEf> titleType = builder.EntityType<VideoEf>();
builder.EntitySet<VideoEf>("Video");
return builder.GetEdmModel();
}
在我的视频控制器:
public class VideoController : ODataController
{
VideoDataContext db = new VideoDataContext ();
[EnableQuery(PageSize = 20, MaxExpansionDepth = 5)]
public IHttpActionResult Get()
{
return Ok(db.Videos.AsQueryable());
}
当我拨打电话,以获得视频实体我不断收到一个” 406不可接受”的错误消息
我怎样才能确保从数据库返回的数据映射到我的自定义模型?
我的模型生成器是否正确?
什么可能导致上述错误?