- 
    Type:
Bug
 - 
    Resolution: Done
 - 
    Priority:
Major - P3
 - 
    Affects Version/s: 2.0
 - 
    Component/s: None
 - 
    None
 
- 
        None
 
- 
        None
 - 
        None
 - 
        None
 - 
        None
 - 
        None
 - 
        None
 
The below test should pass, but doesn't because it treats the predicate as an IEntity, not as a MyEntity.
[TestFixture] public class InterfaceSample { [Test] public async Task Test() { var subject = DriverTestConfiguration.Client.GetDatabase("test").GetCollection<MyEntity>("test"); await subject.DeleteManyAsync("{}"); await subject.InsertOneAsync(new MyEntity { Id = 3, Type = "awesome" }); var entity = await Find(subject, 3); } private Task<T> Find<T>(IMongoCollection<T> collection, int id) where T : IEntity { return collection.Find(x => x.Id == id).FirstOrDefaultAsync(); } } public interface IEntity { int Id { get; set; } } public class MyEntity : IEntity { public int Id { get; set; } public string Type { get; set; } }