Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PostgreSQL中具有特定模式的Linq和实体迁移_C#_Linq_Entity Framework_Postgresql - Fatal编程技术网

C# PostgreSQL中具有特定模式的Linq和实体迁移

C# PostgreSQL中具有特定模式的Linq和实体迁移,c#,linq,entity-framework,postgresql,C#,Linq,Entity Framework,Postgresql,使用PostgreSQL我可以对特定模式中的表执行查询,也可以同时跨多个模式执行查询。我想知道如何处理两种情况: 在使用Linq to EF执行查询时,如何指定多个模式或单个模式? 我在想我可能会表演一些连接字符串巫术,但看起来很快就会变得很难看 如何为多个架构执行实体迁移? 您可以将一个模式指定为对象上的DataAnnotation(通过[Table]),但不能同时指定多个模式(据我所知) 非常感谢任何帮助。对于#1,没有办法在Linq to Entities查询中直接使用模式。我相信

使用PostgreSQL我可以对特定模式中的表执行查询,也可以同时跨多个模式执行查询。我想知道如何处理两种情况:

  • 在使用Linq to EF执行查询时,如何指定多个模式或单个模式?
    • 我在想我可能会表演一些连接字符串巫术,但看起来很快就会变得很难看
  • 如何为多个架构执行实体迁移?
    • 您可以将一个模式指定为对象上的
      DataAnnotation
      (通过
      [Table]
      ),但不能同时指定多个模式(据我所知)
  • 非常感谢任何帮助。

    对于#1,没有办法在Linq to Entities查询中直接使用模式。我相信他们在EF6中添加了一些功能,但我猜你不想等到那个时候

    有一种解决方法,我在SQLServer2008中使用了
    同义词
    (我相信PostgreSQL也有
    同义词
    功能)


    例如,如果您的表名为
    dbo.Address
    read.Address
    ,您将为
    read.Address
    创建一个名为
    read.Address\u read
    同义词
    ,然后将
    同义词
    添加到EF数据模型中,而不是表本身。这使您能够同时对多个模式执行任何和所有查询,因为EF认为这些表具有不同的名称。

    表名称相同吗?前SchemaA.地址和SchemaB.地址?否则我不知道为什么需要在linq查询中指定架构。@EkoostikMartin使用相同的表名。