2012-09-21 16 views
6

Sprawdzałem dokumentację ServiceStack, ale nie znalazłem sposobu na wiele do wielu relacji z ServiceStack.OrmLite, czy jest obsługiwane? Czy istnieje obejście (bez zapisywania surowego sql)?Wiele do wielu relacji z ServiceStack.OrmLite

Chciałbym mieć coś takiego:

Artykuł < - ArticleToTag -> Tag

Dzięki !!

Odpowiedz

11

To nie jest domyślnie obsługiwane automatycznie za tobą, jeśli to masz na myśli? Ale ponieważ OrmLite jest tylko cienkim opakowaniem wokół interfejsów ADO.NET, wszystko jest możliwe.

W OrmLite domyślnie każdy POCO mapuje 1: 1 z tabelą. Więc jeśli chcesz, aby układ tabeli był tworzony tak, jak wygląda w twojej bazie danych, np.

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

db.Insert(article, tag, articleTag); 

Choć warto skorzystać z wbudowanego blobbing w OrmLite gdzie każdy typ złożony tylko dostaje serializowane i przechowywany w jednym polu tekstowym. Więc można zrobić coś takiego:

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

Gdzie Tagi tylko List<string> i OrmLite zajmie przejrzysty szeregowania go w polu bazy danych dla Ciebie.

+0

Dzięki za odpowiedź !! –