0

我正在迈出学习 LINQ to Entity 的第一步,我使用的是 Entity Framework 5。

我必须编写一个 LINQ 表达式,因为结构数据库不允许像 lambda 那样容易编写。

无需赘述,我有以下查询。

    var query = from t1 in context.Table1 
                from t2 in context.Table2
                where t1.ExternalId = t2.Id &&
                      t1.Field1= "some value" &&
                      t2.Field1 < SOME_NUMBER
                select new MyCustomViewModel{
                      field1 = t1.field1,
                      field2 = t2.field1,
                      fieldBySpecificType = MyCustomMapper.Map<SomeType>(t1.field3),
                }

正如您在模型的形成中所看到的,称为映射器,它从字符串表示反序列化某些类的重要性。LINQ 并告诉我它无法在 SQL 表达式中翻译此方法。如您所见,我的模型包含来自多个表的字段,因此我无法收集它。

我试图找到一个解决方案,能够说 LINQ 不需要这种方法来转换为 SQL。对属性进行排序的东西。但我所有的努力都没有成功。也许有什么是我的问题的架构解决方案。

4

1 回答 1

0

据我所知,您首先获取基本查询并对ToList()结果进行操作,然后您可以应用无法转换为 SQL 的方法。

于 2012-10-01T14:30:07.727 回答