如何配置 Advantage Database NET 提供程序以使用带有免费 dbf 表的 LINQ?

How to configure Advantage Database NET provider to use LINQ with free dbf tables?

我尝试将 Advantage 数据库服务器作为 MVC 应用程序的数据提供者。数据源是免费的Visual FoxPro 的表格。我定义 DbContext、数据提供程序和简单的 LINQ,如下所示

提供商: invariantName="Advantage.Data.Provider" 类型="Advantage.Data.Provider.AdsProviderServices, EntityFramework.Advantage.v12, Version=12.0.0.0, Culture=neutral"

connectionStrings: 测试了他们两个 name="Context1_ads" connectionString="Data Source=D:\PathToData\; ServerType=LOCAL; TableType=CDX;" providerName="Advantage.Data.Provider"

name="Context2_ads" connectionString="Data Source=\AdsSrv:6262\Data; TableType=CDX;" providerName="Advantage.Data.Provider"

[Table("STATE", Schema = "::this")] // is this needed?
public class State
{
    public string Guid { get; set; }
    public string Pseudonim { get; set; }
    public string Statename { get; set; }
    //...
}
//Mapping
public class StateMap : EntityTypeConfiguration<State>
{
public StateMap()
{
    this.ToTable("State");
    this.HasKey(t => t.Guid);
    //...
}
}
// Query
ctx.States.Where(t => t.Pseudonim=="Nim").SingleOrDefault();

并得到: 错误 7200:AQE 错误:状态 = HY000;本机错误 = 5041; [SAP][优势 SQL 引擎][ASA] 错误 5041:找不到请求的对象。 dbo - link 对象在空闲连接上不受支持。 Table 名称:状态 AdsCommand 查询执行失败。 生成的查询:

SELECT 
"Limit1"."Guid" AS "Guid"
FROM ( SELECT TOP 2 
    "Extent1"."Guid" AS "Guid"
    FROM "dbo"."State" "Extent1"
    WHERE (("Extent1"."Pseudonim" = :p__linq__0) OR (("Extent1"."Pseudonim" IS NULL) AND (:p__linq__0 IS NULL)))
)  "Limit1"

是否可以将 LINQ to dbf 与 Advantage 提供程序一起使用?

为 DbContext 添加默认 架构:

modelBuilder.HasDefaultSchema("");