【发布时间】:2015-03-25 21:13:21
【问题描述】:
是否可以在odata4中创建模型如:
public class PuppyDogs
{
public string Name { get; set; }
public virtual IList<Bone> Bones { get; set; }
}
public class Bone
{
public string ChewType { get; set; }
public int Numberofchews { get; set; }
}
控制器类看起来像
public class PuppyDogController : ODataController
{
List<PuppysDog> mydogs = new List<PuppysDog>();
private PuppyDogController()
{
if (mydogs.Count == 0)
{
PuppysDog mydog = new PuppysDog();
mydog.Name = "Fido";
mydog.Bones = new List<Bone>()
{
new Bone{ ChewType = "Soft", Numberofchews=1 },
new Bone{ ChewType = "Hard", Numberofchews=2 }
};
mydogs.Add(mydog);
}
}
[EnableQuery]
public IQueryable<PuppysDog> Get()
{
return mydogs.AsQueryable();
}
}
我可以在不使用扩展的情况下包含 PuppyDogs 的 Bones 属性吗?默认情况下,骨骼不会返回给客户端。
【问题讨论】:
-
您需要将骨骼作为实体集吗?如果没有,您可以尝试将 Bones 设为复杂类型。
-
骨头不是复杂的类型吗?我认为通过在模型定义中省略 [Key] 它是一种复杂类型?无论哪种方式,List 属性都不会显示在客户端上。
标签: asp.net-web-api odata