我希望能够做这样的投射:
var result = from record in MyTable
select MapTo( record );
/*
select new RecordModel( )
{
RecordId = record.Id,
Property1 = record.Property1
};
*/
private RecordModel MapTo( MyTable dbRecord )
{
return new RecordModel( )
{
RecordId = dbRecord.Id,
Property1 = dbRecord.Property1
};
}
但我总是得到'NotSupportedException'(没有支持的sql翻译)。 我不确定这是否可能,但它会很好^^
当我使用表达式但我不知道如何编写这样的表达式时,这可能是可能的。
答案 0 :(得分:0)
Linq尝试将该方法添加到查询中,并发现它无法转换为Sql。
为了能够在Linq查询中执行任何CLR方法,您需要首先执行它的sql部分,以便您对内存中的对象进行操作。像这样:
var result = from record in MyTable.ToList()
select MapTo(record);
强制MyTable枚举其条目的任何内容都应该有效。