与ServiceStack.OrmLite的多对多关系

时间:2012-09-21 23:38:37

标签: servicestack ormlite-servicestack

我一直在检查ServiceStack的文档,但我没有找到与ServiceStack.OrmLite建立多对多关系的方法,是否支持?有没有解决方法(没有编写原始sql)?

我想要这样的事情:

文章< - ArticleToTag - >标签

谢谢!

1 个答案:

答案 0 :(得分:11)

如果这就是你的意思,那么你不会在幕后为你自动隐式处理?但是,由于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中的内置blobbing,其中任何复杂类型都会被序列化并存储在单个文本字段中。所以你可以这样做:

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

标记只是List<string>,OrmLite会为您在数据库字段中透明地序列化它。