मिल गया! मैं गेटकोलेक्शन() को किसी अन्य सामान्य विधि से कॉल कर रहा था, जैसे:
public T Save<T>(T item) where T : class, IRepoData, new()
{
GetCollection<T>().Save(item);
}
इसने GetCollection को वास्तविक उदाहरण वर्ग के बजाय T को इंटरफ़ेस के रूप में देखने का कारण बना दिया। GetCollection कहीं और ठीक काम करता है।
इस समस्या वाले किसी और के लिए, मैंने इसके बजाय निम्न स्तर की क्वेरी का उपयोग किया है... Collection.FindOneAs<T>(Query.EQ("Id", itemID.ToString()));