Ich versuche Advantage Database Server als Datenanbieter für MVC-Anwendung. Datenquelle ist freie Visual FoxPro-Tabellen. I definieren DbContext, Datenprovider und einfache LINQ wie untenWie konfiguriert man Advantage Database NET-Provider für die Verwendung von LINQ mit freien DBF-Tabellen?
Anbieter gezeigt: Invariantname = "Advantage.Data.Provider" type = "Advantage.Data.Provider.AdsProviderServices, EntityFramework.Advantage.v12, Version = 12.0 .0.0, Culture = neutral: Context1_ads "connection~~POS=TRUNC = "Data Source = D“
connection beide name = getestet":; Servertype = LOCAL; Table = CDX; \ PathToData \" providerName = "Advantage.Data.Provider"
name = "Context2_ads" connectionString = "Datenquelle = \\ AdsSrv: 6262 \ Data; TableType = CDX;" provider = "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();
Und erhalten: Fehler 7200: AQE Fehler: State = HY000; NativeError = 5041; [SAP] [Advantage SQL Engine] [ASA] Fehler 5041: Das angeforderte Objekt wurde nicht gefunden. dbo - link object wird bei freier Verbindung nicht unterstützt. Tabellenname: Die Ausführung der State AdsCommand-Abfrage ist fehlgeschlagen. Genetated query:
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"
besteht die Möglichkeit, LINQ mit Vorteil Anbieter DBF?
ADS Schema nicht unterstützt, so dass Sie irgendwie Link zu bekommen, um nicht ein Schema weglassen. Haben Sie versucht, Schema auf "" (leere Zeichenfolge) zu setzen? –
Ja, ich habe versucht, leere Schema [Schema = ""], sondern System.ComponentModel.DataAnnotations warf Fehler: "Das Argument 'Wert' kann nicht leer sein, NULL oder enthält nur Leerzeichen." –
Auch habe ich versucht, ohne Anmerkung [Tabelle ("STATE", Schema = ":: this")] - ADS Provider trew den gleichen Fehler 5041. –