(from sms in db.sms
where sms.NeedModeration == true && sms.ReplyStatus == "test" && **sms.date.Value == date**
select new
{
SMSID = sms.SmsID,
Body = sms.body,
Date=sms.date,
ReplyStatus = sms.ReplyStatus
}).AsEnumerable().Select(x=>new VMSMS{
SMSID=x.SMSID,
Body=x.Body,
Date= x.Date.Value,
ReplyStatus = x.ReplyStatus
})
指定されたコードは正常に動作しますが、DATETIME のようなタイプの日付部分のみを一致させたい部分では
sms.date.Value.Date == date.Date
しかし、それは正しく動作しません。次のエラーが表示されます
The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.
では、LINQで DateTime型から Date 部分を抽出する方法を教えてください。
これがSMS ViewModelコードです....
public class VMSMS
{
public long SMSID { get; set; }
public string SMS { get; set; }
public int? SPOID { get; set; }
public string Body { get; set; }
public string EmployeeName { get; set; }
[IgnoreDataMember]
public DateTime Date { get; set; }
public bool? IsRead { get; set; }
public string DoctorCode { get; set; }
public string ReplyStatus { get; set; }
}