C# 如何使用mongodb驱动程序3.4.2从c获取对象#

C# 如何使用mongodb驱动程序3.4.2从c获取对象#,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我在获取C#中的对象时遇到问题。我使用mongo驱动程序2.4.3 我有以下代码: public Employee GetEmployee(int id) { IMongoCollection<Employee> collection = conectWithDatabase(); var filter = Builders<Employee>.Filter.Eq("EmployeeId", id); va

我在获取C#中的对象时遇到问题。我使用mongo驱动程序2.4.3

我有以下代码:

    public Employee GetEmployee(int id)
    {
        IMongoCollection<Employee> collection = conectWithDatabase();

        var filter = Builders<Employee>.Filter.Eq("EmployeeId", id);
        var obtenido = collection.Find(filter).First();

        return obtenido;
    }
在第二段代码中,当我尝试将查询变量转换为list时,程序显示了相同的异常

我试图从MongoDB那里得到一件物品,但我做不到。如果有人能帮助我,我将非常感激。 对不起,我的英语不好

public abstract class Employee
{
    public int EmployeeId { get; set; }
    public string Name { get; set; }
    public DateTime StartDate { get; set; }
}

public class FullTimeEmployee : Employee
{
    public int Salary { get; set; }
}

public class PartTimeEmployee : Employee
{
    public double HourlyRate { get; set; }
}

基本上。。您需要映射鉴别器列,然后基于该列匹配类型

司机应该可以为您做这件事


在基本层面。。您需要映射鉴别器列,然后基于该列匹配类型

司机应该可以为您做这件事


您的异常是“无法创建抽象类实例”。所以最有可能的是Employee类被声明为抽象类。请出示这类声明?是的,员工是抽象的,我有全职员工和兼职员工。但我不知道数据库给我的工作是什么类型的员工。我更新了问题@jleruOhepp请看这里您的异常是“无法创建抽象类实例”。所以最有可能的是Employee类被声明为抽象类。请出示这类声明?是的,员工是抽象的,我有全职员工和兼职员工。但我不知道数据库给我的工作是什么类型的员工。我更新了问题@jleruOhep请看这里问题是我不知道数据库在查询结果中给我的员工类型。然后映射一个鉴别器列并与nameof(typeof class)匹配,然后单击确定。但是问题是我不能把这个员工作为例子,我试图在链接中实现代码,但它不起作用。我不能让员工强制转换。问题是我不知道数据库在查询结果中给我的员工类型。然后映射一个鉴别器列并与nameof(typeof class)匹配,然后单击castOK。但是问题是我不能把这个员工作为例子,我试图在链接中实现代码,但它不起作用。我不能让员工来投。
    System.InvalidOperationException: 'No se pueden crear las instancias de 
    clases abstractas.' -> in this line collection.Find(filter).First();
public abstract class Employee
{
    public int EmployeeId { get; set; }
    public string Name { get; set; }
    public DateTime StartDate { get; set; }
}

public class FullTimeEmployee : Employee
{
    public int Salary { get; set; }
}

public class PartTimeEmployee : Employee
{
    public double HourlyRate { get; set; }
}