Sco*_*合理论 3 c# entity-framework
我有这样的映射类:
[Table("MyTable")]
class MyClass
{
//properties; id, name, etc...
private string _queuedToWHTime = string.Empty;
[Column("QueuedToWHTime")]
public string QueuedToWHTime
{
get { return _queuedToWHTime; }
set { _queuedToWHTime = value; }
}
public DateTime? QueuedToWHTime_DateTime
{
get
{
if (!string.IsNullOrWhiteSpace(_queuedToWHTime))
{
return Convert.ToDateTime(_queuedToWHTime);
}
return null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
和一个表(MyTable):
CREATE TABLE webnews_in
(
Id INT NOT NULL auto_increment,
QueuedToWHTime VARCHAR (50) NULL
...
PRIMARY KEY (Id)
);
Run Code Online (Sandbox Code Playgroud)
当我试图像这样查询:
var searchRslt=(from m in queryableNews
orderby m.QueuedToWHTime_DateTime descending
select m).ToList();
Run Code Online (Sandbox Code Playgroud)
我得到了NotSupportedException:LINQ to Entities不支持指定的类型成员'QueuedToWHTime_DateTime'.仅支持初始值设定项,实体成员和实体导航属性.
您无法在自定义属性上使用EF查询.无法在SQL中转换自定义属性.
你可以这样做来强制orderby在'内存中'完成.
var searchRslt = queryableNews
.AsEnumerable()
.OrderBy(m => m.QueuedToWHTime_DateTime)
.ToList();
Run Code Online (Sandbox Code Playgroud)