7

ServiceStack のドキュメントを確認しましたが、ServiceStack.OrmLite で多対多の関係を行う方法が見つかりませんでした。サポートされていますか? 回避策はありますか (生の SQL を書かずに)?

私はこのようなものが欲しいです:

記事 <- ArticleToTag -> タグ

ありがとう!!

4

1 に答える 1

12

暗黙のうちに自動的に処理されるわけではありません。しかし、OrmLite は ADO.NET インターフェイスのシン ラッパーにすぎないため、あらゆることが可能です。

OrmLiteでは、デフォルトですべての POCOがテーブルに1:1でマップされます。したがって、テーブル レイアウトが必要な場合は、データベースに表示されるのと同じように作成します。

var article = new Article { ... };
var tag = new Tag { ... };
var articleTag = new ArticleTag { ArticleId = article.Id, TagId = tag.Id };

db.Insert(article, tag, articleTag);

OrmLite の組み込みのブロブを利用したいかもしれませんが、複雑な型はシリアル化され、単一のテキスト フィールドに格納されます。したがって、次のようなことができます。

var article = { new Article { Tags = { "A","B","C" } };

タグは単なる aであり、 OrmLiteList<string>はデータベース フィールドで透過的にシリアル化する処理を行います。

于 2012-09-22T00:00:05.023 に答える