領域模型:
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可以正常工作。 –