Я работаю с драйвером MongoDB, и у меня есть следующие классы:
public class Transactions
{
public ObjectId Id { get; set; }
public int UserId { get; set; }
public int AccountId { get; set; }
public int SettingId { get; set; }
}
public class Account
{
public int Id {get; set;}
public int Name {get; set;}
}
public class User
{
public int Id {get; set;}
public int Name {get; set;}
}
public class Setting
{
public int Id {get; set;}
public int Name {get; set;}
}
И я хочу сформировать это, в зависимости от ввода пользователя:
var docs = collection.Aggregate()
.Lookup("account", "AccountId", "_id", "asAccounts")
.Lookup("user", "UserId", "_id", "asUsers")
.Lookup("setting", "SettingId", "_id", "asSettings")
.As<BsonDocument>()
.ToList();
То есть, если пользователь просто хочет отношения с учетной записью, сформируйте это:
var docs = collection.Aggregate()
.Lookup("account", "AccountId", "_id", "asAccounts")
.As<BsonDocument>()
.ToList();
Или, если он хочет отношения с учетной записью и пользователем:
var docs = collection.Aggregate()
.Lookup("user", "UserId", "_id", "asUsers")
.Lookup("setting", "SettingId", "_id", "asSettings")
.As<BsonDocument>()
.ToList();
Я пытаюсь сформировать запрос в зависимости от потребностей пользователя. Просто хочу знать, как связать методы во время выполнения.