我使用下面的脚本定义了一个外部表:
create external table [dbo].[MyExternalTable]
( [MyExternalTableId] [tinyint] not null,
[Status] [nvarchar](50) not null,
[Description] [nvarchar](200) null)
with
(
data_source = MyElasticDBQueryDataSrc,
SCHEMA_NAME = 'dbo', -- external table schema
OBJECT_NAME = 'MyExternalTable' -- name of table in external database
);
go
如何将这个外部表映射到EF-Core模型?
我在下面的DbContext中尝试:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<MyExternalTable>()
.ToView("MyExternalTable");
}
但是当我使用它时,它会抛出异常无效对象名称' myexternaltable '
public async Task TryGetBillPayment()
{
var results =
await _dbContext
.MyExternalTable
.FromSqlRaw("SELECT * FROM MyExternalTable")
.ToListAsync();
}
但是如果我直接从SQL Server Management Studio执行下面的查询,它可以工作:
select * from MyExternalTable
我认为您需要将这些外部表作为一个单独的DB上下文直接指向另一个数据库。