在 SQL Server 和 ServiceStack.OrmLite 中使用架构名称

Posted

技术标签:

【中文标题】在 SQL Server 和 ServiceStack.OrmLite 中使用架构名称【英文标题】:Using schema names with SQL Server & ServiceStack.OrmLite 【发布时间】:2012-12-06 09:39:39 【问题描述】:

有人知道如何将正确的 Alias 属性应用于具有模式名称的查询表吗?

我有一张名为accounts.register 的表。我尝试使用[Alias("accounts.register")] 作为Register 类的类装饰器属性,但这不起作用。

如果我将架构更改为dbo,那么我可以删除别名并且一切正常。不幸的是,我有一个包含许多模式的遗留系统,所以我需要它来工作。

【问题讨论】:

【参考方案1】:

好的,我想通了。与 Alias 属性一起的是 Schema 属性。前者在 ServiceStack.DataAnnotations 命名空间中,而后者在 ServiceStack.OrmLite 命名空间中。这是一个将字段 field1 和 field2 映射到/来自 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; 

【讨论】:

如果您使用的是 T4 POCO 一代,您知道如何让 OrmLite 执行此操作吗? @anaximander 支持最近在版本 4 中添加。github.com/ServiceStack/ServiceStack.OrmLite/commit/… 。如果您想自己添加,可以将 '[Schema("")]' 添加到 '[Alias("")]' 下面的行中并这将添加您需要的架构属性。

以上是关于在 SQL Server 和 ServiceStack.OrmLite 中使用架构名称的主要内容,如果未能解决你的问题,请参考以下文章

sql server 中 in 和like 有啥区别?

使用 SQL Server 2008 和 SQL Server 2005 和日期时间

安装SQL Server和卸载SQL Server步骤

SQL Server Express 和 SQL Server Compact Edition

关于VFP和SQL Server的

ms sql2012 能否安装在win2008 server