FluentMongo と MongoDBCSharpDriver を使用しています。私のコードはしばらくの間正常に動作していましたが、MongoCSharpDriver を更新した後、データベースにクエリを実行しようとすると、このエラーが発生し続けます。
「識別子はクラスに対してのみ登録できます。インターフェース MyLib.Services.IRepoData に対しては登録できません。」
インターフェイスIRepoData
は、MongoDB に保存されたすべてのオブジェクトに使用するものです。すべての _id を定義するだけです。壊れている行は次のとおりです。
var item = Collection.AsQueryable().SingleOrDefault(a => a.Id == itemID);
誰でもこれに光を当てることができますか?ラムダを使用せずに使用する.SingleOrDefault()
と、問題なく動作し、ラムダを渡してそれを壊します。
編集
これが役立つ場合...
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;
}