2012-12-19 15 views
11

Czy ktoś wie, jak zastosować poprawny atrybut Alias ​​do tabel zapytań z nazwami schematów?Używanie nazw schematów za pomocą SQL Server i ServiceStack.OrmLite

Mam tabelę o nazwie accounts.register. Próbowałem używać [Alias("accounts.register")] jako atrybutu klasy dla klasy rejestru, ale to nie działa.

Jeśli zmienię schemat na dbo, mogę usunąć alias i wszystko działa. Niestety mam system z wieloma schematami, więc potrzebuję tego do działania.

Odpowiedz

20

OK Rozgryzłem to. Wraz z atrybutem Alias ​​jest atrybutem Schema. Ten pierwszy znajduje się w przestrzeni nazw ServiceStack.DataAnnotations, ale drugi znajduje się w przestrzeni nazw ServiceStack.OrmLite. Oto przykład do mapowania pól pole1 & pole2 do/z myschema.mytable:

using System; 
using ServiceStack.OrmLite; 
using ServiceStack.DataAnnotations; 

[Schema("myschema")] 
[Alias("mytable")] 
public class MyEntity 
{ 
    [PrimaryKey] 
    [AutoIncrement] 
    public long Id { get; set; } 

    [Alias("field1")] 
    public string SomeField1 { get; set; } 

    [Alias("field1")] 
    public string SomeField2 { get; set; } 
} 
+0

Każdy pomysł jak zdobyć OrmLite to zrobić, jeśli używasz generowanie T4 POCO? – anaximander

+0

Obsługa @anaximander dodana ostatnio w wersji 4. https://github.com/ServiceStack/ServiceStack.OrmLite/commit/a305464056dfa4739f77417dc9e42b323222a3f1. Jeśli chcesz dodać to sam, możesz dodać "[Schemat (" <# = tbl.Schema #> ")]" do wiersza poniżej "[Alias ​​(" <#=tbl.Name#> ")] ', który doda atrybut Schema wymagać. –

Powiązane problemy