小编cir*_*rus的帖子

结合两个Linq表达式

使用来自各种SO帖子的信息,特别是这个博客(更正使用AndAlso而不是And),我设法将类似的类型linq表达式组合成一个谓词.但现在我想结合两个表达式,其中一个是另一个的输入.这是完全展开的原创Expression;

    private Expression<Func<T, bool>> ExpressionIsNamed(IEnumerable<EntityName> AccessorNames)
    {
        // works
        Expression<Func<T, bool>> Texpr = x => x.Security.Readers.Any(n => AccessorNames.ToStringArray().Contains(n.Text));

        return Texpr;
    }
Run Code Online (Sandbox Code Playgroud)

请注意,至关重要的是,我需要将它们作为表达式进行管理,因为我的数据库驱动程序需要遍历树并转换为本机调用,因此使用Compile()进行组合不是一种选择.

以下是我想要与Any()上面的调用结合起来的函数.最终输出Expression必须是类型Expression<Func<T, bool>>,我需要传递x.Security.Readers给这个.

    public static Expression<Func<IEnumerable<EntityName>,bool>> AccessCheckExpression(IEnumerable<EntityName> AccessorNames)
    {
        return accessList => accessList.Any(n => AccessorNames.ToStringArray().Contains(n.Text));
    }
Run Code Online (Sandbox Code Playgroud)

我得尽可能这一点,但我在努力解决如何换出accessList =>,从accessCheck并将它用accessList在一个单一的表达.到目前为止,我有这个;

    private Expression<Func<T, bool>> ExpressionIsNamed(IEnumerable<EntityName> AccessorNames)
    {
        Expression<Func<T, IEnumerable<EntityName>>> accessList = (T x) => x.Security.Readers;
        Expression<Func<IEnumerable<EntityName>, bool>> accessCheck …
Run Code Online (Sandbox Code Playgroud)

c# linq

5
推荐指数
1
解决办法
1839
查看次数

OAUTH - 从LinkedIn请求验证的电子邮件地址

因此,我根据https://developer.linkedin.com/blog/making-it-easier-you-develop-linkedin在使用LinkedIn登录OAUTH时获取用户的电子邮件地址

但是,似乎没有任何方法可以确保这是一个"经过验证"的电子邮件地址,而不是任何人可以假装要求的电子邮件地址.

如果用户未经过验证,我使用过的其他提供商将无法提供用户的主要电子邮件地址,实际上通常根本不会使用Auth.然而,LinkedIn似乎.

有谁知道这是设计还是有解决方法?

oauth linkedin

5
推荐指数
1
解决办法
792
查看次数

使用c#Driver将linq Expression <>转换为IMongoQuery

给出一个;

Expression<Func<T, bool>> criteria;
Run Code Online (Sandbox Code Playgroud)

是否有可能将其转换为IMongoQuery 与驱动程序?

看起来它可能在某个地方的QueryBuilder中,但我看不到它.

mongodb mongodb-.net-driver

3
推荐指数
1
解决办法
4356
查看次数

如何在C#驱动程序中使用BsonSerializer克隆/复制MongoDB的POCO实体

使用官方C#驱动程序制作MongoDB POCO实体的新副本的最佳方法是什么?

我试过这个;

    public T Clone()
    {
        var bsonWriter = new BsonDocumentWriter(new BsonDocument(), BsonDocumentWriterSettings.Defaults);
        BsonSerializer.Serialize(bsonWriter, this);
        var newDoc = bsonWriter.ToBsonDocument(typeof(T));
        var e = BsonSerializer.Deserialize(newDoc , typeof(T));
        return e as T;

    }//Clone()
Run Code Online (Sandbox Code Playgroud)

但我得到的只是一个充满空值的空对象.顺便说一句,POCO对象不会从BsonDocument继承,但它确实很好地序列化,我想要利用它所装饰的所有Bson属性,这就是为什么我不想以其他方式复制它.我想要一个副本,因为数据库驱动程序会这样做.

mongodb bson mongodb-.net-driver

1
推荐指数
1
解决办法
1965
查看次数

标签 统计

mongodb ×2

mongodb-.net-driver ×2

bson ×1

c# ×1

linkedin ×1

linq ×1

oauth ×1