实体框架的无参数构造函数问题

时间:2013-04-07 13:26:24

标签: entity-framework-5

我有以下代码导致实体框架的无参数构造函数错误。我已经发现它是由if(search.Active)块和那里的日期引起的...但我不知道如何绕过它。我如何构建我的日期以便EF与他们合作?感谢。

var members = from m in Members select m;

if (!string.IsNullOrEmpty(search.Letter))
            members = members.Where(x => x.LastName.Substring(0, 1) == search.Letter.Substring(0, 1));

        if (search.Active)
        {
            if (DateTime.Now < new DateTime(DateTime.Now.Year, 10, 15))
            {
                members = members.Where(x => x.ExpireDate >= new DateTime(DateTime.Now.Year, 5, 31));
            }
            else
            {
                members = members.Where(x => x.ExpireDate >= new DateTime(DateTime.Now.Year + 1, 5, 31));
            }
        }

        return members.Select(x => new MemberListItem
            {
                FirstName = x.FirstName, 
                LastName = x.LastName, 
                MemberId = x.MemberId, 
                ExpirationDate = x.ExpireDate
            }).ToList();

1 个答案:

答案 0 :(得分:1)

这可能会解决问题,因为EF可能在LINQ-to-Entities查询中构造DateTime时遇到问题:

if (search.Active)
{
    if (DateTime.Now < new DateTime(DateTime.Now.Year, 10, 15))
    {
        DateTime date = new DateTime(DateTime.Now.Year, 5, 31);
        members = members.Where(x => x.ExpireDate >= date);
    }
    else
    {
        DateTime date = new DateTime(DateTime.Now.Year + 1, 5, 31);
        members = members.Where(x => x.ExpireDate >= date);
    }
}
相关问题