如何在ODataV4中使用自定义类而不是designer.cs中的类
C#Web.Api Odata应用程序 我第一次实现了ODataV4,希望使用我自己的自定义类,而不是设计器中的数据类 以下是我所做的: 我在Visual Studio中创建了一个数据项目,并添加了我的SQL Linq数据表“Video” 我创建的数据上下文如下所示:如何在ODataV4中使用自定义类而不是designer.cs中的类,odata,Odata,C#Web.Api Odata应用程序 我第一次实现了ODataV4,希望使用我自己的自定义类,而不是设计器中的数据类 以下是我所做的: 我在Visual Studio中创建了一个数据项目,并添加了我的SQL Linq数据表“Video” 我创建的数据上下文如下所示: public class VideoDataContext : DbContext { public VideoDataContext(): base("name=VideoData") { DbSet<VideoEf>
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();
}
当我打电话获取视频实体时,我不断收到“406不可接受”错误消息
如何确保从数据库返回的数据映射到自定义模型
我的模型生成器正确吗
什么可能导致上述错误?您不需要返回IQueryable,因为您有EnableQuery属性,只需返回DbSet即可 您也不需要任何wcf属性和
EntityTypeConfiguration titleType=builder.EntityType()代码>
那它应该就行了。
希望能有帮助
编辑
我对IQueryable的错误,我也使用它
public class VideoController : ODataController
{
VideoDataContext db = new VideoDataContext ();
[EnableQuery(PageSize = 20, MaxExpansionDepth = 5)]
public IHttpActionResult Get()
{
return Ok(db.Videos.AsQueryable());
}