使用Unity IoC提供的Context时,查询不会运行

时间:2013-12-11 13:16:05

标签: sql-server linq entity-framework

看到令人难以置信的有线......

这是我的询问....

    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'子句不会运行!

错误是......

  

仅支持原始类型或枚举类型

如果我在查询之前'新'了一个上下文,那么它就可以了。

任何想法??

0 个答案:

没有答案