Mik*_*der 5 c# polymorphism 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
{
}
Run Code Online (Sandbox Code Playgroud)
像这样的查询有效
var item = mongo.GetCollection<Area>().AsQueryable().FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
但是当我提出类似的查询时
var item = mongo.GetCollection<Content>().AsQueryable().FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
我得到一个InvalidCastException
Object must implement IConvertible.
Run Code Online (Sandbox Code Playgroud)
怎么了?将Area转换为Content应该不是问题.我真的必须制作内容才能实现IConvertible吗?
您可以在查询后将其强制转换:
mongo.GetCollection<Area>().AsQueryable().Cast<Content>().FirstOrDefault()
Run Code Online (Sandbox Code Playgroud)