それを見つけた!次のような別のジェネリックメソッド内からGetCollection()を呼び出していました:
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()));