2012-12-19 1 views
11

スキーマ名を持つクエリテーブルに正しいAlias属性を適用する方法を知っていますか?SQL ServerとServiceStack.OrmLiteでのスキーマ名の使用

accounts.registerというテーブルがあります。私は[Alias("accounts.register")]をRegisterクラスのクラスデコレータ属性として使ってみましたが、これはうまくいきません。

スキーマをdboに変更すると、エイリアスを削除できますが、すべて動作します。残念ながら私は多くのスキーマを持つレガシーシステムを持っていますので、これを動作させる必要があります。

答えて

20

私はそれを理解しました。 Alias属性には、Schema属性もあります。前者はServiceStack.DataAnnotations名前空間にありますが、後者はServiceStack.OrmLite名前空間にあります。あなたはT4 POCO生成を使用している場合OrmLiteこれを行うために取得する方法

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

任意のアイデア:ここでの例では、フィールドmyschema.mytableへ/からのフィールド1フィールド2 &をマッピングするためには? – anaximander

+0

@anaximanderのサポートは、バージョン4で最近追加されました。https://github.com/ServiceStack/ServiceStack.OrmLite/commit/a305464056dfa4739f77417dc9e42b323222a3f1あなた自身で追加したい場合は、 '[別名( "<#=tbl.Name#>")]'の下の行に '[Schema( "<##tbl.Schema#>"])'を追加することができます。必要とする。 –

関連する問題