我在下面的查询中收到此错误
无法创建类型的常量值
API.Models.PersonProtocol.在此上下文中仅支持基元类型或枚举类型
ppCombined下面是一个IEnumerable对象PersonProtocolType,由2个PersonProtocol列表的concat构成.
为什么这会失败?我们不能使用LINQ JOIN条款里面SELECT的JOIN?
var persons = db.Favorites
.Where(x => x.userId == userId)
.Join(db.Person, x => x.personId, y => y.personId, (x, y) =>
new PersonDTO
{
personId = y.personId,
addressId = y.addressId,
favoriteId = x.favoriteId,
personProtocol = (ICollection<PersonProtocol>) ppCombined
.Where(a => a.personId == x.personId)
.Select( b => new PersonProtocol()
{
personProtocolId = b.personProtocolId,
activateDt = b.activateDt,
personId = b.personId
})
});
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我有讲师,他们有可以教授的课程列表,当我删除课程时,我想删除与讲师的联系.这是代码:
public void RemoveCourse(int courseId)
{
using (var db = new AcademicTimetableDbContext())
{
var courseFromDb = db.Courses.Find(courseId);
var toRemove = db.Lecturers
.Where(l => l.Courses.Contains(courseFromDb)).ToList();
foreach (var lecturer in toRemove)
{
lecturer.Courses.Remove(courseFromDb);
}
db.SaveChanges();
}
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我明白了
NotSupportedException:无法创建类型的常量值
Course.在此上下文中仅支持基元类型或枚举类型.
我究竟做错了什么?