Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können Beziehungen zwischen Entitäten in Ihrem Business Data Connectivity (BDC)-Modell definieren, indem Sie Zuordnungen erstellen. Visual Studio generiert Methoden, die Nutzern des Modells Informationen zu den einzelnen Beziehungen bereitstellen. Diese Methoden können von SharePoint-Webparts, -Listen oder benutzerdefinierten Anwendungen verwendet werden, um Datenbeziehungen in einer Benutzeroberfläche anzuzeigen.
Erstellen einer Verknüpfung
Erstellen Sie eine Zuordnung, indem Sie das Zuordnungssteuerelement in der Visual Studio-Toolbox auswählen, die erste Entität (als Quellentität bezeichnet) und dann die zweite Entität (als Zielentität bezeichnet) auswählen. Sie können die Details der Zuordnung im Zuordnungs-Editor definieren. Weitere Informationen finden Sie unter So erstellen Sie eine Verknüpfung zwischen Entitäten.
Zuordnungsmethoden
Anwendungen wie SharePoint-Geschäftsdatenwebparts nutzen Zuordnungen, indem Methoden in der Dienstklasse einer Entität aufgerufen werden. Sie können der Dienstklasse einer Entität Methoden hinzufügen, indem Sie sie im Zuordnungs-Editor auswählen.
Standardmäßig fügt der Zuordnungs-Editor den Quell- und Zielentitäten eine Zuordnungsnavigationsmethode hinzu. Mithilfe einer Zuordnungsnavigationsmethode in der Quellentität können Verbraucher eine Liste von Zielentitäten abrufen. Mithilfe einer Navigationsmethode für Assoziationen in der Zielentität können Nutzer die Quellentität abrufen, die sich auf eine Zielentität bezieht.
Sie müssen jedem dieser Methoden den Code hinzufügen, um die entsprechenden Informationen zurückzugeben. Sie können auch weitere Methodentypen hinzufügen, um erweiterte Szenarien zu unterstützen. Weitere Informationen zu den einzelnen Methoden finden Sie unter "Unterstützte Vorgänge".
Arten von Assoziationen
Sie können im BDC-Designer zwei Arten von Zuordnungen erstellen: fremdschlüsselbasierte Zuordnungen und fremdschlüssellose Zuordnungen.
Zuordnung auf Basis von Fremdschlüsseln
Sie können eine fremdschlüsselbasierte Zuordnung erstellen, indem Sie einen Bezeichner in der Quellentität mit Typdeskriptoren verknüpfen, die in der Zielentität definiert sind. Diese Beziehung ermöglicht es Verbrauchern des Modells, eine verbesserte Benutzeroberfläche für ihre Benutzer bereitzustellen. Beispielsweise ein Formular in Outlook, das es einem Benutzer ermöglicht, einen Verkaufsauftrag zu erstellen, der Kunden in einer Dropdownliste anzeigen kann; oder eine Liste von Verkaufsaufträgen in SharePoint, mit der Benutzer eine Profilseite für einen Kunden öffnen können.
Um eine fremdschlüsselbasierte Zuordnung zu erstellen, verknüpfen Sie Bezeichner und Typdeskriptoren, die denselben Namen und Typ aufweisen. Sie können z. B. eine fremdschlüsselbasierte Zuordnung zwischen einer Contact Entität und einer SalesOrder Entität erstellen. Die SalesOrder Entität gibt einen ContactID Typdeskriptor als Teil des Rückgabeparameters von Finder- oder Specific Finder-Methoden zurück. Beide Typdeskriptoren werden im Zuordnungs-Editor angezeigt. Wenn Sie eine fremdschlüsselbasierte Beziehung zwischen der Contact Entität und SalesOrder der Entität erstellen möchten, wählen Sie den ContactID Bezeichner neben jedem dieser Felder aus.
Fügen Sie der Association-Navigator-Methode der Quellentität Code hinzu, der eine Auflistung von Zielentitäten zurückgibt. Im folgenden Beispiel werden die Verkaufsaufträge für einen Kontakt zurückgegeben.
public static IEnumerable<SalesOrderHeader> ContactToSalesOrder(int contactID)
{
const string ServerName = "MySQLServerName";
AdventureWorksDataContext dataContext = new AdventureWorksDataContext
("Data Source=" + ServerName + ";" +
"Initial Catalog=AdventureWorks;Integrated Security=True");
IEnumerable<SalesOrderHeader> orderList =
from orders in dataContext.SalesOrderHeaders
where orders.ContactID == contactID
select orders;
return orderList;
}
Fügen Sie der Association Navigator-Methode der Zielentität Code hinzu, der eine Quellentität zurückgibt. Im folgenden Beispiel wird der Kontakt zurückgegeben, der mit dem Verkaufsauftrag verknüpft ist.
public static IEnumerable<Contact> SalesOrderToContact(int salesOrderID)
{
const string ServerName = "MySQLServerName";
AdventureWorksDataContext dataContext = new AdventureWorksDataContext
("Data Source=" + ServerName + ";" +
"Initial Catalog=AdventureWorks;Integrated Security=True");
int TempContactID = (from orders in dataContext.SalesOrderHeaders
where orders.SalesOrderID == salesOrderID
select orders.ContactID).Single();
IEnumerable<Contact> contactList = from contacts in dataContext.Contacts
where contacts.ContactID == TempContactID
select contacts;
return contactList;
}
Fremdschlüssellose Zuordnung
Sie können eine Zuordnung erstellen, ohne Bezeichner zu Feldtypdeskriptoren zuzuordnen. Erstellen Sie diese Art von Zuordnung, wenn die Quellentität keine direkte Beziehung mit der Zielentität hat. Beispielsweise verfügt eine SalesOrderDetail Tabelle nicht über einen Fremdschlüssel, der einem Primärschlüssel in einer Contact Tabelle zugeordnet ist.
Wenn Sie Informationen in der SalesOrderDetail Tabelle anzeigen möchten, die sich auf eine Contact beziehen, können Sie eine fremdschlüssellose Zuordnung zwischen der Contact Entität und der SalesOrderDetail Entität erstellen.
Geben Sie in der Zuordnungsnavigationsmethode der Contact Entität die SalesOrderDetail Entitäten zurück, indem Sie Tabellen verknüpfen oder eine gespeicherte Prozedur aufrufen.
Im folgenden Beispiel werden Details aller Verkaufsaufträge durch Verknüpfen von Tabellen zurückgegeben.
public static IEnumerable<SalesOrderDetail> ContactToSalesOrderDetail(int contactID)
{
const string ServerName = "MySQLServerName";
AdventureWorksDataContext dataContext = new AdventureWorksDataContext
("Data Source=" + ServerName + ";" +
"Initial Catalog=AdventureWorks;Integrated Security=True");
IEnumerable<SalesOrderDetail> orderList =
from orders in dataContext.SalesOrderHeaders
join orderDetails in dataContext.SalesOrderDetails on
orders.SalesOrderID equals orderDetails.SalesOrderID
where orders.ContactID == contactID
select orderDetails;
return orderList;
}
Geben Sie in der Zuordnungsnavigationsmethode der SalesOrderDetail Entität den zugehörigen ContactWert zurück. Dies wird im folgenden Beispiel veranschaulicht:
public static IEnumerable<Contact> SalesOrderDetailToContact(int salesOrderID, int salesOrderDetailID)
{
const string ServerName = "MySQLServerName";
AdventureWorksDataContext dataContext = new AdventureWorksDataContext
("Data Source=" + ServerName + ";" +
"Initial Catalog=AdventureWorks;Integrated Security=True");
int TempContactID = (from orders in dataContext.SalesOrderHeaders
where orders.SalesOrderID == salesOrderID
select orders.ContactID).Single();
IEnumerable<Contact> contactList = from contacts in dataContext.Contacts
where contacts.ContactID == TempContactID
select contacts;
return contactList;
}