TypanbieterType Providers

Hinweis

Dieses Handbuch wurde für F# 3.0 geschrieben und wird aktualisiert.This guide was written from F# 3.0 and will be updated. Unter FSharp.Data finden Sie aktuelle plattformübergeifende Typanbieter.See FSharp.Data for up-to-date, cross-platform type providers.

Ein F#-Typanbieter ist eine Komponente, die Typen, Eigenschaften und Methoden zur Verwendung im Programm bereitstellt.An F# type provider is a component that provides types, properties, and methods for use in your program. Typanbieter sind ein wesentlicher Teil der F# 3.0-Unterstützung für die informationsreiche Programmierung.Type providers are a significant part of F# 3.0 support for information-rich programming. Der Schlüssel zur informationsreichen Programmierung ist das Beseitigen der Schranken, die das Arbeiten mit unterschiedlichen Informationsquellen aus dem Internet und in modernen Unternehmensumgebungen erschweren.The key to information-rich programming is to eliminate barriers to working with diverse information sources found on the Internet and in modern enterprise environments. Eine wesentliche Schranke, die das Einschließen einer Informationsquelle in ein Programm verhindert, ist die Anforderung, die Informationen als Typen, Eigenschaften und Methoden darzustellen, damit sie in einer Programmiersprache verwendet werden können.One significant barrier to including a source of information into a program is the need to represent that information as types, properties, and methods for use in a programming language environment. Das manuelle Schreiben dieser Typen ist sehr zeitaufwendig, und die Verwaltung dieser Typen ist schwierig.Writing these types manually is very time-consuming and difficult to maintain. Eine häufige Alternative ist die Verwendung eines Code-Generators, der dem Projekt Dateien hinzufügt. Die herkömmlichen Typen der Codegenerierung lassen sich jedoch nicht gut in die von F# unterstützten explorativen Programmiermodi integrieren, da der generierte Code jedes Mal ersetzt werden muss, wenn ein Dienstverweis angepasst wird.A common alternative is to use a code generator which adds files to your project; however, the conventional types of code generation do not integrate well into exploratory modes of programming supported by F# because the generated code must be replaced each time a service reference is adjusted.

Die von den F#-Typanbietern bereitgestellten Typen basieren normalerweise auf externen Informationsquellen.The types provided by F# type providers are usually based on external information sources. Beispielsweise stellt ein F#-Typanbieter für SQL die Typen, Eigenschaften und Methoden bereit, die Sie benötigen, um direkt mit den Tabellen jeder SQL-Datenbank zu arbeiten, auf die Sie Zugriff haben.For example, an F# type provider for SQL will provide the types, properties, and methods you need to work directly with the tables of any SQL database you have access to. Entsprechend stellt ein Typanbieter für WSDL-Webdienste die Typen, Eigenschaften und Methoden bereit, die Sie benötigen, um direkt mit jedem WSDL-Webdienst zu arbeiten.Similarly, a type provider for WSDL web services will provide the types, properties, and methods you need to work directly with any WSDL web service.

Der Satz der Typen, Eigenschaften und Methoden, die von einem F#-Typanbieter bereitgestellt werden, kann von Parametern im Programmcode abhängen.The set of types, properties, and methods provided by an F# type provider can depend on parameters given in program code. Beispielsweise kann ein Typanbieter abhängig von einer Verbindungszeichenfolge oder einer Dienst-URL unterschiedliche Typen bereitstellen.For example, a type provider can provide different types depending on a connection string or a service URL. Auf diese Weise wird die über eine Verbindungszeichenfolge oder eine URL verfügbare Informationsquelle direkt in das Programm integriert.In this way, the information space available by means of a connection string or URL is directly integrated into your program. Ein Typanbieter kann außerdem sicherstellen, dass Gruppen von Typen nur bei Bedarf erweitert werden; das heißt, sie werden erweitert, wenn das Programm tatsächlich auf die Typen verweist.A type provider can also ensure that groups of types are only expanded on demand; that is, they are expanded if the types are actually referenced by your program. Dies ermöglicht die direkte, bedarfsabhängige und stark typisierte Integration von umfangreichen Informationsquellen, z. B. Onlinedatenanbietern.This allows for the direct, on-demand integration of large-scale information spaces such as online data markets in a strongly typed way.

F# enthält mehrere integrierte Typanbieter für Datendienste, die im Internet und in Unternehmen häufig zur Anwendung kommen.F# contains several built-in type providers for commonly used Internet and enterprise data services. Diese Typanbieter bieten einfachen und regulären Zugriff auf relationale SQL-Datenbanken und netzwerkbasierte OData- und WSDL-Dienste, die die Verwendung von F# LINQ-Abfragen für diese Datenquellen unterstützen.These type providers give simple and regular access to SQL relational databases and network-based OData and WSDL services and support the use of F# LINQ queries against these data sources.

Bei Bedarf können Sie eigene benutzerdefinierte Typanbieter erstellen oder auf Typanbieter verweisen, die von anderen Entwicklern erstellt wurden.Where necessary, you can create your own custom type providers, or reference type providers that have been created by others. Angenommen, in einer Organisation wird ein Datendienst verwendet, der eine große und wachsende Anzahl von benannten Datasets bereitstellt, die alle ein eigenes, stabiles Datenschema verwenden.For example, assume your organization has a data service providing a large and growing number of named data sets, each with its own stable data schema. Sie möchten einen Typanbieter erstellen, der die Schemas liest und die neuesten verfügbaren Datasets auf eine stark typisierte Weise für den Programmierer darstellt.You may choose to create a type provider that reads the schemas and presents the latest available data sets to the programmer in a strongly typed way.

TitelTitle BeschreibungDescription
Exemplarische Vorgehensweise: Zugreifen auf eine SQL-Datenbank mithilfe von TypanbieternWalkthrough: Accessing a SQL Database by Using Type Providers Erläutert, wie der SqlDataConnection-Typanbieter verwendet wird, um auf Tabellen und gespeicherte Prozeduren in einer SQL-Datenbank zuzugreifen. Zum Herstellen der Verbindung wird hierbei eine Verbindungszeichenfolge für eine direkte Verbindung mit der Datenbank verwendet.Explains how to use the SqlDataConnection type provider to access the tables and stored procedures of a SQL database based on a connection string for a direct connection to a database. Für den Zugriff wird eine LINQ to SQL-Zuordnung verwendet.The access uses a LINQ to SQL mapping.
Exemplarische Vorgehensweise: Zugreifen auf eine SQL-Datenbank mithilfe von Typanbietern und EntitätenWalkthrough: Accessing a SQL Database by Using Type Providers and Entities Erläutert, wie der SqlEntityConnection-Typanbieter verwendet wird, um auf Tabellen und gespeicherte Prozeduren in einer SQL-Datenbank zuzugreifen. Zum Herstellen der Verbindung wird hierbei eine Verbindungszeichenfolge für eine direkte Verbindung mit der Datenbank verwendet.Explains how to use the SqlEntityConnection type provider to access the tables and stored procedures of a SQL database, based on a connection string for a direct connection to a database. Der Zugriff verwendet eine LINQ to Entities-Zuordnung.The access uses a LINQ to Entities mapping. Diese Methode funktioniert mit jeder Datenbank, im Beispiel wird jedoch nur SQL Server verwendet.This method works with any database but the example demonstrated is SQL Server.
Exemplarische Vorgehensweise: Zugreifen auf einen OData-Dienst mithilfe von TypanbieternWalkthrough: Accessing an OData Service by Using Type Providers Erläutert, wie der ODataService-Typanbieter verwendet wird, um, basierend auf einer Dienst-URL, mit starker Typisierung auf einen OData-Dienst zuzugreifen.Explains how to use the ODataService type provider to access an OData service in a strongly typed way based on a service URL.
Exemplarische Vorgehensweise: Zugreifen auf einen Webdienst mithilfe von TypanbieternWalkthrough: Accessing a Web Service by Using Type Providers Erläutert, wie der WsdlService-Typanbieter verwendet wird, um, basierend auf einer Dienst-URL, mit starker Typisierung auf einen WSDL-Webdienst zuzugreifen.Explains how to use the WsdlService type provider to access a WSDL web service in a strongly typed way based on a service URL.
Exemplarische Vorgehensweise: Generieren von F#-Typen aus einer DBML-DateiWalkthrough: Generating F# Types from a DBML File Erläutert, wie der DbmlFile-Typanbieter verwendet wird, um auf Tabellen und gespeicherte Prozeduren in einer SQL-Datenbank zuzugreifen. Für den Zugriff wird eine DBML-Datei verwendet, die eine Spezifikation für ein LINQ to SQL-Datenbankschema bereitstellt.Explains how to use the DbmlFile type provider to access the tables and stored procedures of a SQLdatabase, based on a DBML file giving a Linq to SQL database schema specification.
Exemplarische Vorgehensweise: Generieren von F#-Typen aus einer EDMX-SchemadateiWalkthrough: Generating F# Types from an EDMX Schema File Erläutert, wie der EdmxFile-Typanbieter verwendet wird, um auf Tabellen und gespeicherte Prozeduren in einer SQL-Datenbank zuzugreifen. Für den Zugriff wird eine EDMX-Datei verwendet, die eine Entity Framework-Schemaspezifikation bereitstellt.Explains how to use the EdmxFile type provider to access the tables and stored procedures of a SQL database, based on an EDMX file giving an Entity Framework schema specification.
Tutorial: Erstellen eines TypanbietersTutorial: Creating a Type Provider Bietet Informationen zum Schreiben von eigenen benutzerdefinierten Typanbietern.Provides information on writing your own custom type providers.
Sicherheit von TypanbieternType Provider Security Bietet Informationen zu Sicherheitsüberlegungen beim Entwickeln von Typanbietern.Provides information about security considerations when developing type providers.
Problembehandlung bei TypanbieternTroubleshooting Type Providers Enthält Informationen über allgemeine Probleme, die beim Arbeiten mit Typanbietern auftreten können, und Lösungsvorschläge.Provides information about common problems that can arise when working with type providers and includes suggestions for solutions.

Siehe auchSee Also

F#-SprachreferenzF# Language Reference

Visual F#Visual F#