Проблема полиморфизма в MongoDb с драйвером NoRM
У меня занятия
[MongoDiscriminated]
public abstract class Content
{
public int? Id { get; set; }
public int? ParentId { get; set; }
public string Slug { get; set; }
public string Path { get; set; }
public string Title { get; set; }
}
public class Area : Content
{
}
Запрос, как это работает
var item = mongo.GetCollection<Area>().AsQueryable().FirstOrDefault();
Но когда я делаю запрос, как
var item = mongo.GetCollection<Content>().AsQueryable().FirstOrDefault();
Я получаю InvalidCastException
Object must implement IConvertible.
В чем дело? Это не должно быть проблемой для преобразования области в контент. Действительно ли мне нужно создавать Контент для реализации IConvertible?
2 ответа
Вы можете просто привести его после запроса:
mongo.GetCollection<Area>().AsQueryable().Cast<Content>().FirstOrDefault()
Просто отправил запрос на github, чтобы исправить это исключение: