我有一個Web表單,用戶可以在其中動態添加文本字段。然後,他可以在這些文本字段中輸入數據並提交表單,然後將表單保存到MongoDB中。使用LINQ來搜索MongoDB集合,它是動態構建的
然後我想從MongoDB中檢索一些數據。但我不知道如何做到這一點。
通常我會事先定義entity
類。就像:
public class User
{
public string Name {get;set;}
public int Age {get;set;}
}
然後,我通常有一些存儲庫類,它能夠從MongoDB中檢索數據。
var userRepo = new Repository<User>();
var user = userRepo.Where(x => x.Name == "something");
但由於這些表單字段建立動態我沒有在編譯時爲它定義class
的方式。
所以用我的回購類將不會在這種情況下工作:
var someRepo = new Repository<What_To_Put_Here?>();
這意味着我不能使用得心應手LINQ表達式,因爲MongoDB中收集並不代表我的代碼的任何類。
我不知道我的新模式應該如何通過MongoDB進行搜索,就像我使用我的Repository
類一樣。我仍然喜歡以某種方式使用LINQ來搜索(動態構建)集合。
有沒有反正我可以解決這個問題?
您可以使用泛型來更改通用「T」元素的「What_To_Put_here」。但我認爲你仍然會遇到同樣的問題,因爲你不知道你的存儲文檔中的字段是如何存在的。也許你可以使用LINQ投影來解析文檔到已知的類。 – rubenfa