C#에서 개체를 가져 오는 데 문제가 있습니다. mongo 드라이버 2.4.3을 사용합니다.mongodb 드라이버 3.4.2에서 개체를 얻는 방법 C#
이 코드가 : I가 GetEmplyee 방법 프로그램 표시이 예외
System.InvalidOperationException: 'No se pueden crear las instancias de
clases abstractas.' -> in this line collection.Find(filter).First();
호출하면
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;
}
과 첫 번째 코드로이
public List<Employee> GetAllEmployees()
{
IMongoCollection<Employee> collection = conectWithDatabase();
var query = from employee in collection.AsQueryable<Employee>()
select employee;
return query.ToList();
}
및 제의 내가 쿼리 var를 캐스팅하려고 할 때 프로그램이 동일한 예외를 표시하도록 코드를 작성하십시오.
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 클래스는 추상으로 선언됩니다. 이 클래스 선언을 보여 주시겠습니까? – JleruOHeP
예 직원이 추상입니다. FullTimeEmployee 및 PartTimeEmployee가 있습니다. 그러나 나는 데이터베이스가 나를 일하게하는 Employee의 타입을 모른다. 나는 질문을 업데이트한다 @JleruOHeP – nicoperez
여기를 보아라 http://mongodb.github.io/mongo-csharp-driver/2.4/reference/bson/mapping/polymorphism/ – Veeram