use*_*050 0 c# linq linq-to-entities entity-framework linq-to-sql
不知道为什么我在下面运行此查询时遇到此错误
无法创建"YogaBandy2017.Models.Profile.YogaProfile"类型的常量值.在此上下文中仅支持基元类型或枚举类型.
var requestedEvents = dbContext.YogaSpaceEvents
.Where(i => i.RequestedInstructor == yogaProfile)
.OrderByDescending(i => i.EventDateTime)
.Select(i => new PendingEvent
{
SpaceName = i.YogaSpace.Overview.Title,
SpaceImage = i.YogaSpace.YogaSpaceImages
.Where(j => j.IsMainImage)
.Select(j => j.ImageThumbnailCropped11)
.FirstOrDefault(),
SpaceId = i.YogaSpace.YogaSpaceId,
SpaceEventsHosted = i.YogaSpace.ClassesHosted,
SpaceReviewNumber = i.YogaSpace.ReviewNumber,
SpaceReviewPercent = i.YogaSpace.ReviewPercentage,
SpaceNumberOfReviews = i.YogaSpace.NumberOfReviews,
HostImage = i.YogaSpace.YogaProfile.YogaProfileImages
.Where(k => k.IsMainImage)
.Select(k => k.ImageThumbnailCropped)
.FirstOrDefault(),
HostId = i.YogaSpace.YogaProfile.YogaProfileId,
HostName = i.YogaSpace.YogaProfile.FirstName,
EventDateTime = i.EventDateTime,
Style = i.StyleMain.ToString(),
Duration = i.Duration,
EventId = i.YogaSpaceEventId
})
.ToList();
Run Code Online (Sandbox Code Playgroud)
你不能在一个子句中使用这样的实体Where
(它不知道如何将它转换为SQL)
但是,他们很可能会拥有一处Id
房产.所以你应该能够做到以下几点
dbContext.YogaSpaceEvents.Where(i => i.RequestedInstructor.Id == yogaProfile.Id)
Run Code Online (Sandbox Code Playgroud)