C# .date属性在linq查询中不允许

C# .date属性在linq查询中不允许,c#,entity-framework,C#,Entity Framework,我正在使用我的linq查询,如下所示 var result = from m in genDB.Membership_Association join ag in genDB.Account_Group on m.Account_Group_ID equals ag.Account_Group_ID join s in genDB.Account_Section on m.Account_Section_ID equals s.Account_

我正在使用我的linq查询,如下所示

var result = from m in genDB.Membership_Association
             join ag in genDB.Account_Group on m.Account_Group_ID equals ag.Account_Group_ID
             join s in genDB.Account_Section on m.Account_Section_ID equals s.Account_Section_ID
             join p in genDB.Account_Package on m.Account_Package_ID equals p.Account_Package_ID
             join pinfo in genDB.ProductInfo on m.Product_ID equals pinfo.Product_Id
             where m.Control_Plan_ID == controlPlanId && m.Account_ID == accId
             select new MembershipViewModel
             {
                 GroupNumber = ag.Account_Group_Number,
                 SectionNumber = s.Account_Section_Number,
                 PackageNumber = p.Account_Package_Number,
                 ProductName = pinfo.Product_Name,
                 CreatedDate = m.Create_Date.Date,
                 EffectiveDate = m.Effective_Date.Value.Date,
                 CancelledDate = m.Cancel_Date.Value.Date,
                 Status = m.Status
             };

在上面的查询中,它引发了一个异常“LINQ to Entities中不支持指定的类型成员'Date'。只支持初始值设定项、实体成员和实体导航属性。”在.Date属性中,您需要确保只比较两侧的日期部分

测试用例:

  • 如果在左侧使用DateTime类型,则右侧也应为DateTime类型,而不是日期类型
  • 还要检查是否使用了任何边作为可空值
  • 如果是DateTime类型,则需要检查两侧的时间值。 e、 例如,创建一个没有时间的datetime并选中:- DateTime myDate=新的日期时间(DateTime.Now.Year、DateTime.Now.Month、DateTime.Now.Day);var e=(来自myEntities.Table中的mds,其中mds.CreateDateTime>=myDate选择mds) 4.如果是日期类型,请使用日期类型进行检查。 比如说,


    var query=来自db.MyTable中的e,其中e.AsOfDate可以使用
    SqlFunctions.DatePart
    提取要比较的日期时间的相关部分。见

    是的。这是不允许的。(什么问题?)谢谢大卫。是否有其他方法可以获取日期我只需要获取指定日期时间字段的日期,并且需要在linq查询中获取它
    CreatedDate.Date = m.Create_Date.Date