Я использую FluentMongo и MongoDBCSharpDriver.Некоторое время мой код работал нормально, но после обновления моего MongoCSharpDriver я теперь получаю эту ошибку, когда пытаюсь выполнить запрос к базе данных:
"Дискриминаторы могут быть зарегистрированы только для классов, но не для интерфейса MyLib.Services.IRepoData. "
Интерфейс IRepoData
- это всего лишь один интерфейс, который я использую для всех своих объектов, сохраненных в MongoDB.Он просто определяет _id для всего.Вот линия, которая ломается:
var item = Collection.AsQueryable().SingleOrDefault(a => a.Id == itemID);
Может кто-нибудь пролить свет на этот?Если я просто использую .SingleOrDefault()
без лямбды, то она работает нормально, передавая лямбду, которая ее ломает.
EDIT
В случае, если это помогает ...
var Collection = GetCollection<MyClass>();
private MongoCollection<T> GetCollection<T>() where T : class, new()
{
string typeName = typeof(T).Name;
var collection = db.GetCollection<T>(typeName, safeMode);
return collection;
}