2012-12-19 31 views
11

Bất kỳ ai biết cách áp dụng thuộc tính Bí danh chính xác để truy vấn bảng có tên lược đồ?Sử dụng tên lược đồ với SQL Server & ServiceStack.OrmLite

Tôi có một bảng gọi là accounts.register. Tôi đã thử sử dụng [Alias("accounts.register")] là thuộc tính trang trí lớp cho lớp Đăng ký nhưng điều này không hoạt động.

Nếu tôi thay đổi lược đồ thành dbo thì tôi có thể xóa bí danh và mọi thứ hoạt động. Thật không may tôi có một hệ thống di sản với nhiều lược đồ vì vậy tôi cần điều này để làm việc.

Trả lời

20

OK tôi đã tìm ra. Cùng với thuộc tính Alias ​​là thuộc tính Schema. Trước đây là trong không gian tên ServiceStack.DataAnnotations nhưng sau này là trong không gian tên ServiceStack.OrmLite. Dưới đây là một ví dụ để lập bản đồ các lĩnh vực field1 & field2 đến/từ 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

Bất kỳ ý tưởng làm thế nào để có được OrmLite để làm điều này nếu bạn đang sử dụng hệ T4 POCO? Hỗ trợ – anaximander

+0

@anaximander được thêm gần đây trong phiên bản 4. https://github.com/ServiceStack/ServiceStack.OrmLite/commit/a305464056dfa4739f77417dc9e42b323222a3f1. Nếu bạn muốn tự thêm nó, bạn có thể thêm '[Schema ("<# = tbl.Schema #>")]' vào dòng bên dưới '[Alias ​​("<#=tbl.Name#>")]' và điều đó sẽ thêm thuộc tính Schema bạn yêu cầu. –

Các vấn đề liên quan