看到令人难以置信的有线......
这是我的询问....
var searchParams = new SearchParameters {FirstName = "Ian"};
var query =
Context.Prospects
.Where(p =>
p.ProspectId == searchParams.ProspectId
|| p.Contact.FirstName.ToLower().Contains(searchParams.FirstName.ToLower())
|| p.Contact.LastName.ToLower().Contains(searchParams.LastName.ToLower())
|| p.Contact.PhoneNumber.Contains(searchParams.PhoneNumber))
.Join(Context.ProspectEvents, p => p.ProspectId, pe => pe.ProspectId,
(p, pe) => new {Prospect = p, ProspectEvent = pe})
.Join(Context.Lookup_Event, p => p.ProspectEvent.EventId, e => e.EventId,
(p, e) => new {p.Prospect, p.ProspectEvent, Event = e})
.Where(
x =>
x.ProspectEvent.Date ==
Context.ProspectEvents.Where(pe => pe.ProspectId == x.Prospect.ProspectId)
.Max(pe => pe.Date)
).ToList();
此查询针对SQL Server 2000运行。我不确定这会如何产生影响,但我没有遇到与2012年相关的问题。
当Unity IoC提供EF上下文时,最后的'where'子句不会运行!
错误是......
此
仅支持原始类型或枚举类型
如果我在查询之前'新'了一个上下文,那么它就可以了。
任何想法??