使用SELECT JOIN进行BLToolkit复杂映射

时间:2011-04-23 15:21:12

标签: database mapping bltoolkit

尝试在我的项目中使用BLToolkit映射器。有一件事我真的不知道如何解决,这笔交易是我有2个班级内容和评论。

[MapField("CommentItemId","CommentContent.ContentId")]
public class Comment
{
    [MapField("Comment.CommentId")]
    public int CommentId;

    [Relation(typeof(Content))]
    public Content CommentContent;
}


 public class Content
{
    [MapField("ContentId"),PrimaryKey]
    public int ContentId;

    public IList<Comment> Comments = new List<Comment>();
}

嗯,看起来就像每个人在BLToolkit.net上看到的那样简单的复杂映射。 但是,我正在尝试使用SELECT JOIN查询。这是我的疑问。

MapResultSet[] sets = new MapResultSet[2];
sets[0] = new MapResultSet(typeof(Content));
sets[1] = new MapResultSet(typeof(Comment));

command = String.Format(@"SELECT con.ContentId,com.CommentId,com.CommentItemId
                           FROM Content as con,Comments as com
                           WHERE (con.ContentId = com.CommentItemId AND con.ContentId {0})", itemid, type);

此查询返回正确的数据(使用ExecuteReader检查)。但是在MapResultSets中只有内容数据,没有评论数据......如果我要交换内容和评论集...我将只获得评论数据,而不是内容数据...我现在甚至不关心现实,我只想向BLToolkit解释,有一行中有2个类的数据。

0 个答案:

没有答案