领域模型:
public class Course
{
public int CourseId { get; set; }
public virtual ICollection<TeeSet> TeeSets { get; set; }
}
public class TeeSet
{
public int TeeSetId { get; set; }
public int CourseId { get; set; }
public CourseRating MensRating { get; set; }
}
下面的查询不包括CourseRating复杂类型时被扩展课程包括TeeSets。 ?
GET/API /课程$扩大= TeeSets
public class CoursesController : ApiController
{
[Queryable]
public IQueryable<Course> Get()
{
return _uow.Courses.GetAll();
}
}
的JSON序列化的结果不包括MensRating复杂类型(CourseRating):反对的DbContext回报
[
{
"teeSets": [
{
"teeSetId": 1,
"courseId": 7
},
{
"teeSetId": 2,
"courseId": 7
}
],
"courseId": 7,
}
]
然而,快速测试TeeSets上的CourseRating复杂类型就像我期望的那样:
[TestMethod]
public void Get_Course_With_TeeSets()
{
using (CoursesContext ctx = new CoursesContext())
{
var courses = ctx.Courses.Where(x => x.CourseId == 7).Include(x => x.TeeSets).FirstOrDefault();
}
}
使用实体框架6和Web API 2。
是的,我试过这个,但是抛出了一个NotSupportedException。 “无法比较'StatTracker.Domain.CourseRating'类型的元素,只支持原始类型,枚举类型和实体类型。”看起来只有当通过$ expand包含包含实体时才会发生这种情况,因为包含CourseRating复杂类型的另一个实体对于GET或POST可以正常工作。 –