Проблема полиморфизма в MongoDb с драйвером NoRM - PullRequest
5 голосов
/ 24 января 2011

У меня есть классы

[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 ]

0 голосов
/ 30 августа 2011

Только что отправил запрос на github, чтобы исправить это исключение:

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

0 голосов
/ 10 мая 2011

Вы можете просто разыграть его после запроса:

mongo.GetCollection<Area>().AsQueryable().Cast<Content>().FirstOrDefault()
...