我一直在检查ServiceStack的文档,但我没有找到与ServiceStack.OrmLite建立多对多关系的方法,是否支持?有没有解决方法(没有编写原始sql)?
我想要这样的事情:
文章< - ArticleToTag - >标签
谢谢!
答案 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会为您在数据库字段中透明地序列化它。