假设我物化数据有一个实体:EF6:使用自定义类型
public class Event
{
...
public DateTime At { get; set; }
}
除了作为一个模型对象:
public class Something
{
...
public Date At { get; set; }
}
其中日期是可以由一个隐式转换的自定义类型日期时间:
public struct Date
{
public Date(DateTime value)
{
...
}
...
public static implicit operator Date(DateTime value)
{
return new Date(value);
}
}
我试图做的是从数据库中的数据提取到模型:
var events = db.Events
.Select(x => new Something
{
...
At = x.At,
})
.ToList();
当然这与以下异常失败:
无法转换类型“System.DateTime的”输入“SMG.Web.Date”。 LINQ to Entities仅支持投射EDM基元或枚举类型。
是的,我知道我可以通过一些临时对象的帮助实现我需要的东西,将DateTime值实现到内存中,然后将其转换为我的自定义类型。但是如果我不想使用这种策略,并且想要一步完成这一操作,该怎么办?
问题是:有没有办法教LINQ to Entities如何在现实的一面处理我的自定义日期?
在“选择(...)”之前执行'ToList()' – DavidG
您是否真的读过它? – drty
是的,这就是我评论而不是回答的原因。 – DavidG