c# - 方法 x 没有支持的 SQL 转换

标签 c# .net linq-to-sql

我想编写一个查询,它应该获取用户对象和用户已经发布的消息量。我通过以下方式做到了这一点:

var query = (from u in _db.Repository<User>()
             where u.IsDeleted != true
             select new UserWithMessagecount()
             {
                 User = u
                 MessageCount = GetUserMessageCount(u.Documents).Count(),
             });

我正在使用一种方法,因为一些消息应该被过滤掉(以动态方式)

为了简单起见,我将发布没有排序逻辑的函数(它仍然会产生相同的错误)。

    private EntitySet<Document> GetUserMessageCount(EntitySet<Document> set)
    {
        return set;
    }

返回的错误是:

方法“x”没有支持的 SQL 转换。

关于如何解决这个问题有什么想法吗?

最佳答案

改用这个语法:

 var query = (from u in _db.Repository<User>()
             let MessageCount = GetUserMessageCount(u.Documents).Count()
             where u.IsDeleted != true
             select new UserWithMessagecount()
             {
                 User = u,
                 MessageCount = MessageCount
             });

关于c# - 方法 x 没有支持的 SQL 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5309338/

相关文章:

c# - C#Selenium如何单击嵌入的youtube视频的播放按钮

c# - ProcessExit 与 DomainUnload

c# - 并行排序算法

c# - 测试 'null' 与测试 'default(T)'

c# - c#中的递归相关问题

c# - 可为空的对象必须有一个值——为什么?

.net - LinqToSQL Select 和 SelectMany 与 Join

linq - 如何生成私有(private) LINQ to SQL 类?

c# - SqlException:System.Data.SqlClient.SqlException (0x80131904)

c# - 如何在 .net core 2.1 中忽略 SSL 验证