Tôi đã có một lớp cơ sở trừu tượng và các thực thể poco kế thừa. Tôi đang sử dụng bảng cho mỗi thừa kế lớp con với tự động hóa nhibernate 1.1 tự động.Vấn đề với các proxy đúc khi sử dụng bảng NHibernate cho mỗi chiến lược thừa kế lớp con
Việc thừa kế lớp trông giống như sau
Node (abstract class) Địa điểm: Node Asset: Node
lớp Node cơ bản là một cấu trúc cây.
public abstract class Node
{
public virtual int Id
{
get;
set;
}
public virtual Node ParentNode
{
get;
set;
}
public virtual ICollection<Node> ChildNodes
{
get;
set;
}
}
Bây giờ vấn đề là khi tôi nhận được một đối tượng của tài sản từ cơ sở dữ liệu và làm objAsset.ParentNode, tôi có thể đúc ParentNode để Asset hoặc Place, nhưng nếu tôi làm điều gì đó như objAsset.ParentNode.ParentNode.ParentNode, thì ParentNode xuất hiện dưới dạng "{Castle.Proxies.NodeProxy}" và tôi không thể truyền nó tới Địa điểm hoặc Nội dung.
Tôi biết rằng trong trường hợp của tôi kết quả cuối cùng phải là loại Place, vì bản ghi tồn tại trong cơ sở dữ liệu trong bảng địa điểm nhưng vì một số lý do NHibernate không thể tải nó xuống loại thực tế, nó chỉ có thể cast tới lớp cơ sở Node.
Bất kỳ ý tưởng nào?
Đang chờ Nabeel
Ngoài ra, như đã nêu trong bài viết; một giải pháp là vô hiệu hóa tải lười biếng trên các hiệp hội, mà sẽ cung cấp cho bạn các đối tượng thực tế. – DanP
Xem thêm workaround –
nhờ deigo ... thats làm việc ra tuyệt vời. Điều duy nhất là tôi phải bỏ qua thuộc tính Tự trong bản đồ. – nabeelfarid