Проблема полиморфизма в 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, чтобы исправить это исключение:

https://github.com/atheken/NoRM/pulls

Другие вопросы по тегам