プロジェクトで 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 には Content データのみがあり、Comment データはありません ... Content と Comment セットを交換すると ... Comment データのみが取得され、 Content データは取得されません ... 今のところ、現実についても気にしません。 、 BLToolkit に説明したいのですが、1 行に 2 つのクラスのデータがあるということです。