PostgreSQL 中具有特定模式的 Linq 和实体迁移
Posted
技术标签:
【中文标题】PostgreSQL 中具有特定模式的 Linq 和实体迁移【英文标题】:Linq and Entity Migrations with specific schemas in PostgreSQL 【发布时间】:2013-07-23 03:41:56 【问题描述】:使用 PostgreSQL,我可以对特定架构中的表执行查询,或者一次跨多个架构执行查询。我想知道如何处理两种情况:
-
在使用 Linq to EF 执行查询时,如何指定多个架构或单个架构?
我想我也许可以执行一些连接字符串巫术,但似乎很快就会变得非常难看。
如何为多个架构执行实体迁移?
您可以将架构指定为对象上的
DataAnnotation
(通过[Table]
),但您不能一次指定多个架构(据我所知)。
非常感谢任何帮助。
【问题讨论】:
表名是否相同? ex SchemaA.Address 和 SchemaB.Address?否则我不知道你为什么需要在你的 linq 查询中指定模式。 @EkoostikMartin 相同的表名。 【参考方案1】:对于#1,没有办法直接在 Linq-To-Entities 查询中使用模式。我相信他们会在 EF6 中添加一些功能,但我猜你不想等到那时。
我在 SQL Server 2008 中使用了一种解决方法,使用 Synonyms
(我相信 PostgreSQL 也有 Synonym
功能)。
例如,如果您的表名是 dbo.Address
和 read.Address
,您将为 read.Address
创建一个名为 read.Address_read
的 Synonym
,然后将 Synonym
添加到您的 EF 数据模型中,而不是表本身。这使您能够一次针对多个模式执行任何和所有查询,因为 EF 认为这些表具有不同的名称。
【讨论】:
以上是关于PostgreSQL 中具有特定模式的 Linq 和实体迁移的主要内容,如果未能解决你的问题,请参考以下文章