MVCアプリケーションのデータプロバイダとしてAdvantage Databaseサーバーを試してみます。データソースは、Visual FoxProの無料のテーブルです。 invariantName = "Advantage.Data.Provider" タイプ= "Advantage.Data.Provider.AdsProviderServices、EntityFramework.Advantage.v12、バージョン= 12.0:無料dbfテーブルでLINQを使用するAdvantage Database NETプロバイダの設定方法を教えてください。
プロバイダ以下のようにIはDbContext、データプロバイダと簡単なLINQを定義します.0.0、文化=中立」
のconnectionStrings:テストされ、それらの両方 名= "Context1_ads" たconnectionString = "データソース= D:\ PathToData \; ServerTypeに= LOCAL; TABLETYPE = CDX;" "データソース= \\ AdsSrv:6262 \ Data; TableType = CDX;" <プロバイダ名> "Advantage.Data.Provider"
name = "Context2_ads" connectionString = 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();
とget: エラー7200:AQEエラー:状態= HY000を。 NativeError = 5041; [SAP] [Advantage SQL Engine] [ASA]エラー5041:要求されたオブジェクトが見つかりませんでした。 dbo-linkオブジェクトは、フリー接続ではサポートされていません。テーブル名:状態AdsCommandクエリの実行に失敗しました。 Genetatedクエリ:アドバンテージプロバイダにDBFするために可能な利用のLINQは
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"
ですか?
ADSは、スキーマをサポートしていません。 Schemaを ""(空文字列)に設定しようとしましたか? –
はい、私は空のスキーマ[Schema = ""]を試しましたが、System.ComponentModel.DataAnnotationsがエラーを投げました: "引数 'value'は空でもNULLでも空白だけでもかまいません。 –
また、私は注釈なしで試しました[表( "STATE"、Schema = ":: this")] - ADSプロバイダーは同じエラー5041を処理します。 –