Как привести к интерфейсу коллекцию в MongoDb?
Столкнулся с проблемой, что нельзя привести к одному интерфейсу данные. К примеру, у нас есть какой-то интерфейс:
public interface IProduct{}
От него наследуются классы:
public class ProductA : IProduct{}
public class ProductA : IProduct{}
Так же у нас есть DataContext:
public class DataContext
{
private MongoClient _client;
private IMongoDatabase _context;
public DataContext()
{
_client = new MongoClient("mongodb://localhost:27017");
_context = _client.GetDatabase("Product");
Product = _context.GetCollection<IProduct>("Products");
}
public IMongoCollection<IProduct> Product{ get; set; }
Если я сделаю ProductA, а потом попробую взаимодействовать с ним:
DataContext _context = new DataContext();
_context.SetSetting.InsertOne(new ProductA);
Собственно, у меня этот пример не будет работать, ибо MongoDb, как я понял, не умеет работать с интерфейсами. Как это можно устранить на данном примере?
Источник: Stack Overflow на русском