我无法弄清楚我想要完成的任务的语法。如前所述,我正在使用 MongoDB 的 C# 驱动程序。
我有一个用户实体定义为
[BsonIgnoreExtraElements]
public class User : MongoEntity
{
[BsonElement]
public string Username { get; set; }
[BsonElement]
public string Password { get; set; }
[BsonElement]
public string Email { get; set; }
}
我还有一个 UserService 类,它对我的 mongo 数据库中的 User 集合执行操作。下面是我如何创建一个真正简单的登录示例的示例。
public UserPresentation Login(string username, string password)
{
var entityQuery = Query<User>.EQ(e => e.Username, username.ToUpper());
var entity = this.MongoConnectionHandler.MongoCollection.FindOne(entityQuery);
return (entity != null && entity.Id.ToString().Length > 0 && entity.Password == password) ? new UserPresentation(entity) : null;
}
这是可行的,但是我的问题是...我可以以某种方式将更多字段附加到初始值中,而不是创建一个仅查找用户名==用户名的查询,返回元素,然后在 if 语句中比较密码entityQuery
object.
您可以使用Query.And()
像这样...
var entityQuery = Query.And(
Query<User>.EQ(e => e.Username, username.ToUpper()),
Query<User>.EQ(e => e.Password, password)
);
See CSharp 驱动教程
或者您可以使用 LINQ 风格来完成,请参阅:CSharp 驱动程序 LINQ 教程
这也很有趣:如何使用 MongoCursor 重写具有投影要求的 MongoDB C# LINQ
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)