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 中的内置 blob,其中任何复杂类型都只会被序列化并存储在单个文本字段中。因此,您可以执行以下操作:

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

Tags只是一个, OrmLiteList<string>会为您在数据库字段中透明地序列化它。

于 2012-09-22T00:00:05.023 回答