2011-01-24 27 views
5

tôi có các lớp họcvấn đề Polymorphism trong MongoDB với tài xế 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 
{ 
} 

Query như thế này làm việc

var item = mongo.GetCollection<Area>().AsQueryable().FirstOrDefault(); 

Nhưng khi tôi thực hiện một truy vấn như

var item = mongo.GetCollection<Content>().AsQueryable().FirstOrDefault(); 

tôi nhận được một InvalidCastException

Object must implement IConvertible. 

Có vấn đề gì? Nó không phải là một vấn đề để chuyển đổi khu vực thành nội dung. Tôi có thực sự phải làm cho Nội dung triển khai IConvertible không?

Trả lời

0

Bạn chỉ có thể cast nó sau khi truy vấn:

mongo.GetCollection<Area>().AsQueryable().Cast<Content>().FirstOrDefault() 
Các vấn đề liên quan