Udostępnij przez


Tworzenie klasy widoku połączenia

Klasa widoku unii jest logiczną unią wystąpień klas źródłowych. Klasa widoku unii zawiera wszystkie wystąpienia klas źródłowych, chyba że ograniczysz wystąpienia przez dołączenie klauzuli WHERE w zapytaniu źródłowym.

Klasy widoków połączonych są przydatne, gdy chcesz zobaczyć wystąpienia podobnych lub identycznych klas, które znajdują się w różnych przestrzeniach nazw lub na różnych komputerach. Można na przykład utworzyć klasę union zawierającą instancje różnych napędów dysków do monitorowania.

Właściwości klasy widoku łączącego można także opierać na właściwościach, które nie występują we wszystkich instancjach klasy źródłowej. Jeśli wystąpienia klasy źródłowej nie mają tej samej właściwości, właściwości wystąpień klasy zjednoczenia mają wartość NULL. Na przykład, jeśli jeden dysk twardy ma właściwość temperatury , a inny jej nie ma, nadal można stworzyć połączenie między nimi.

Poniższa instrukcja opisuje tworzenie klasy widoku złączenia.

Aby utworzyć klasę widoku związkowego

  1. Rozpocznij definicję klasy za pomocą kwalifikatora ciągu Union.

    Kwalifikatory JoinOn, Associationi Union wzajemnie się wykluczają.

  2. Utwórz zapytania definiujące klasy źródeł używane w klasie widoku za pomocą parametru kwalifikatora ViewSources.

  3. Zdefiniuj nazwy i lokalizację przestrzeni nazw, w których znajdują się klasy źródłowe z kwalifikatorem ViewSpaces.

  4. Zdefiniuj właściwości, które mapują się na właściwości w klasach źródłowych za pomocą kwalifikatora PropertySources.

    W razie potrzeby można oznaczyć dowolną z właściwości jako należącą do klasy źródłowej przy użyciu kwalifikatora HiddenDefault.

  5. Zdefiniuj podstawowe cechy klas bazowych swojej klasy widoku zbioru.

    Każda klasa źródłowa musi mieć taką samą liczbę właściwości klucza zgodnych z CIMType. Ponadto klucze klasy widoku złączenia muszą jednoznacznie identyfikować wszystkie wystąpienia źródłowe. W niektórych przypadkach może być konieczne określenie właściwości systemu w celu zapewnienia, że wystąpienia są unikatowe. Jeśli na przykład utworzysz widok z unii dwóch identycznych klas w dwóch różnych przestrzeniach nazw, możesz uwzględnić właściwość __Namespace jako klucz w klasie widoków, aby odróżnić te dwa wystąpienia. Jeśli do utworzenia widoku są używane dwie podobne klasy z tej samej przestrzeni nazw, można użyć właściwości __Class, aby odróżnić te dwie klasy. Zmień nazwę właściwości systemu w widoku, aby uniknąć konfliktu z właściwościami systemowymi klasy widoków.

  6. Zdefiniuj dowolne metody korzystając z MethodSource kwalifikatora.

    W przeciwieństwie do innych klas widoków, można tworzyć metody modyfikacji widoku złączenia.

W poniższym przykładzie kodu opisano klasę widoku unii.

[Union, ViewSources{"SELECT Description, DeviceID, __Namespace, FileSystem, FreeSpace, VolumeName FROM LocalDisk", 
    "SELECT Description, DeviceID, __Namespace, FileSystem, FreeSpace, VolumeName FROM RemoteDisk"}, 
    ViewSpaces{"\\\\.\\Root\\LocalNamespace","\\\\.\\Root\\RemoteNamespace"}, 
    dynamic: ToInstance, provider("MS_VIEW_INSTANCE_PROVIDER")]

class UnionOfDrives

{
    [PropertySources{"Description", "Description"}] string des;
    [PropertySources{"DeviceID", "DeviceID"}, key] String did;
    [PropertySources{"__Namespace", "__Namespace"}, key] String KEYID;
    [PropertySources{"FileSystem", "FileSystem"}] String fsystem ;
    [PropertySources{"FreeSpace", "FreeSpace"}] uint64 fspace;
    [PropertySources{"VolumeName", "VolumeName"}] String vname;
};