Bagikan melalui


Spesifikasi SSDL

Bahasa definisi skema penyimpanan (SSDL) adalah bahasa berbasis XML yang menjelaskan model penyimpanan aplikasi Entity Framework.

Dalam aplikasi Entity Framework, metadata model penyimpanan dimuat dari file .ssdl (ditulis dalam SSDL) ke dalam instans kelas System.Data.Metadata.Edm.StoreItemCollection dan dapat diakses dengan menggunakan metode dalam kelas System.Data.Metadata.Edm.MetadataWorkspace. Entity Framework menggunakan metadata model penyimpanan untuk menerjemahkan kueri terhadap model konseptual untuk menyimpan perintah tertentu.

Perancang Kerangka Kerja Entitas (Desainer EF) menyimpan informasi model penyimpanan dalam file .edmx pada waktu desain. Pada waktu build, Perancang Entitas menggunakan informasi dalam file .edmx untuk membuat file .ssdl yang diperlukan oleh Entity Framework saat runtime.

Versi SSDL dibingkai oleh namespace XML.

Versi SSDL XML Namespace
SSDL v1 https://schemas.microsoft.com/ado/2006/04/edm/ssdl
SSDL v2 https://schemas.microsoft.com/ado/2009/02/edm/ssdl
SSDL v3 https://schemas.microsoft.com/ado/2009/11/edm/ssdl

Elemen Asosiasi (SSDL)

Elemen Asosiasi dalam bahasa definisi skema penyimpanan (SSDL) menentukan kolom tabel yang berpartisipasi dalam batasan kunci asing dalam database yang mendasar. Dua elemen Akhir anak yang diperlukan menentukan tabel di akhir asosiasi dan perkalian di setiap ujungnya. Elemen ReferentialConstraint opsional menentukan ujung utama dan dependen asosiasi serta kolom yang berpartisipasi. Jika tidak ada elemen ReferentialConstraint yang ada, elemen AssociationSetMapping harus digunakan untuk menentukan pemetaan kolom untuk asosiasi.

Elemen Asosiasi dapat memiliki elemen turunan berikut (dalam urutan yang tercantum):

  • Dokumentasi (nol atau satu)
  • Akhir (tepat dua)
  • ReferentialConstraint (nol atau satu)
  • Elemen anotasi (nol atau lebih)

Atribut yang Berlaku

Tabel berikut ini menjelaskan atribut yang dapat diterapkan ke elemen Asosiasi .

Nama Atribut Diperlukan Nilai
Nama Ya Nama batasan kunci asing yang sesuai dalam database yang mendasar.

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen Asosiasi . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk SSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen Asosiasi yang menggunakan elemen ReferentialConstraint untuk menentukan kolom yang berpartisipasi dalam FK_CustomerOrders batasan kunci asing:

 <Association Name="FK_CustomerOrders">
   <End Role="Customers"
        Type="ExampleModel.Store.Customers" Multiplicity="1">
     <OnDelete Action="Cascade" />
   </End>
   <End Role="Orders"
        Type="ExampleModel.Store.Orders" Multiplicity="*" />
   <ReferentialConstraint>
     <Principal Role="Customers">
       <PropertyRef Name="CustomerId" />
     </Principal>
     <Dependent Role="Orders">
       <PropertyRef Name="CustomerId" />
     </Dependent>
   </ReferentialConstraint>
 </Association>

Elemen AsosiasiSet (SSDL)

Elemen AssociationSet dalam bahasa definisi skema penyimpanan (SSDL) mewakili batasan kunci asing antara dua tabel dalam database yang mendasar. Kolom tabel yang berpartisipasi dalam batasan kunci asing ditentukan dalam elemen Asosiasi. Elemen Asosiasi yang sesuai dengan elemen AssociationSet tertentu ditentukan dalam atribut Asosiasi elemen AssociationSet .

Kumpulan asosiasi SSDL dipetakan ke kumpulan asosiasi CSDL oleh elemen AssociationSetMapping. Namun, jika asosiasi CSDL untuk kumpulan asosiasi CSDL tertentu didefinisikan dengan menggunakan elemen ReferentialConstraint , tidak ada elemen AssociationSetMapping yang sesuai yang diperlukan. Dalam hal ini, jika elemen AssociationSetMapping ada, pemetaan yang ditentukannya akan ditimpa oleh elemen ReferentialConstraint .

Elemen AssociationSet dapat memiliki elemen turunan berikut (dalam urutan yang tercantum):

  • Dokumentasi (nol atau satu)
  • Akhir (nol atau dua)
  • Elemen anotasi (nol atau lebih)

Atribut yang Berlaku

Tabel berikut ini menjelaskan atribut yang dapat diterapkan ke elemen AssociationSet .

Nama Atribut Diperlukan Nilai
Nama Ya Nama batasan kunci asing yang diwakili oleh kumpulan asosiasi.
Asosiasi Ya Nama asosiasi yang menentukan kolom yang berpartisipasi dalam batasan kunci asing.

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen AssociationSet . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk SSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen AssociationSet yang mewakili batasan kunci asing dalam database yang mendasar FK_CustomerOrders :

 <AssociationSet Name="FK_CustomerOrders"
                 Association="ExampleModel.Store.FK_CustomerOrders">
   <End Role="Customers" EntitySet="Customers" />
   <End Role="Orders" EntitySet="Orders" />
 </AssociationSet>

Elemen CollectionType (SSDL)

Elemen CollectionType dalam bahasa definisi skema penyimpanan (SSDL) menentukan bahwa jenis pengembalian fungsi adalah koleksi. Elemen CollectionType adalah turunan dari elemen ReturnType. Jenis koleksi ditentukan dengan menggunakan elemen turunan RowType:

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen CollectionType . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk SSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan fungsi yang menggunakan elemen CollectionType untuk menentukan bahwa fungsi mengembalikan kumpulan baris.

   <Function Name="GetProducts" IsComposable="true" Schema="dbo">
     <ReturnType>
       <CollectionType>
         <RowType>
           <Property Name="ProductID" Type="int" Nullable="false" />
           <Property Name="CategoryID" Type="bigint" Nullable="false" />
           <Property Name="ProductName" Type="nvarchar" MaxLength="40" Nullable="false" />
           <Property Name="UnitPrice" Type="money" />
           <Property Name="Discontinued" Type="bit" />
         </RowType>
       </CollectionType>
     </ReturnType>
   </Function>

Elemen CommandText (SSDL)

Elemen CommandText dalam bahasa definisi skema penyimpanan (SSDL) adalah turunan dari elemen Fungsi yang memungkinkan Anda menentukan pernyataan SQL yang dijalankan di database. Elemen CommandText memungkinkan Anda menambahkan fungsionalitas yang mirip dengan prosedur tersimpan dalam database, tetapi Anda menentukan elemen CommandText dalam model penyimpanan.

Elemen CommandText tidak dapat memiliki elemen turunan. Isi elemen CommandText harus merupakan pernyataan SQL yang valid untuk database yang mendasar.

Tidak ada atribut yang berlaku untuk elemen CommandText .

Contoh

Contoh berikut menunjukkan elemen Fungsi dengan elemen CommandText turunan. Mengekspos fungsi UpdateProductInOrder sebagai metode pada ObjectContext dengan mengimpornya ke dalam model konseptual.  

 <Function Name="UpdateProductInOrder" IsComposable="false">
   <CommandText>
     UPDATE Orders
     SET ProductId = @productId
     WHERE OrderId = @orderId;
   </CommandText>
   <Parameter Name="productId"
              Mode="In"
              Type="int"/>
   <Parameter Name="orderId"
              Mode="In"
              Type="int"/>
 </Function>

DefiningQuery Element (SSDL)

Elemen DefiningQuery dalam bahasa definisi skema penyimpanan (SSDL) memungkinkan Anda menjalankan pernyataan SQL langsung dalam database yang mendasar. Elemen DefiningQuery umumnya digunakan seperti tampilan database, tetapi tampilan ditentukan dalam model penyimpanan alih-alih database. Tampilan yang ditentukan dalam elemen DefiningQuery dapat dipetakan ke jenis entitas dalam model konseptual melalui elemen EntitySetMapping. Pemetaan ini bersifat baca-saja.  

Sintaks SSDL berikut menunjukkan deklarasi EntitySet diikuti oleh elemen DefiningQuery yang berisi kueri yang digunakan untuk mengambil tampilan.

 <Schema>
     <EntitySet Name="Tables" EntityType="Self.STable">
         <DefiningQuery>
           SELECT  TABLE_CATALOG,
                   'test' as TABLE_SCHEMA,
                   TABLE_NAME
           FROM    INFORMATION_SCHEMA.TABLES
         </DefiningQuery>
     </EntitySet>
 </Schema>

Anda dapat menggunakan prosedur tersimpan dalam Kerangka Kerja Entitas untuk mengaktifkan skenario baca-tulis melalui tampilan. Anda dapat menggunakan tampilan sumber data atau tampilan SQL Entitas sebagai tabel dasar untuk mengambil data dan untuk pemrosesan perubahan dengan prosedur tersimpan.

Anda dapat menggunakan elemen DefiningQuery untuk menargetkan Microsoft SQL Server Compact 3.5. Meskipun SQL Server Compact 3.5 tidak mendukung prosedur tersimpan, Anda dapat menerapkan fungsionalitas serupa dengan elemen DefiningQuery . Tempat lain di mana dapat berguna adalah dalam membuat prosedur tersimpan untuk mengatasi ketidakcocokan antara jenis data yang digunakan dalam bahasa pemrograman dan sumber data. Anda dapat menulis DefiningQuery yang mengambil serangkaian parameter tertentu dan kemudian memanggil prosedur tersimpan dengan serangkaian parameter yang berbeda, misalnya, prosedur tersimpan yang menghapus data.

Elemen Dependen (SSDL)

Elemen Dependen dalam bahasa definisi skema penyimpanan (SSDL) adalah elemen turunan ke elemen ReferentialConstraint yang menentukan akhir dependen dari batasan kunci asing (juga disebut batasan referensial). Elemen Dependen menentukan kolom (atau kolom) dalam tabel yang mereferensikan kolom kunci utama (atau kolom). Elemen PropertyRef menentukan kolom mana yang direferensikan. Elemen Utama menentukan kolom kunci utama yang dirujuk oleh kolom yang ditentukan dalam elemen Dependen .

Elemen Dependen dapat memiliki elemen turunan berikut (dalam urutan yang tercantum):

  • PropertyRef (satu atau beberapa)
  • Elemen anotasi (nol atau lebih)

Atribut yang Berlaku

Tabel berikut ini menjelaskan atribut yang dapat diterapkan ke elemen Dependen .

Nama Atribut Diperlukan Nilai
Peran Ya Nilai yang sama dengan atribut Peran (jika digunakan) dari elemen Akhir yang sesuai; jika tidak, nama tabel yang berisi kolom referensi.

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen Dependen . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk CSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen Asosiasi yang menggunakan elemen ReferentialConstraint untuk menentukan kolom yang berpartisipasi dalam batasan kunci asing FK_CustomerOrders . Elemen Dependen menentukan kolom CustomerId dari tabel Pesanan sebagai akhir dependen batasan.

 <Association Name="FK_CustomerOrders">
   <End Role="Customers"
        Type="ExampleModel.Store.Customers" Multiplicity="1">
     <OnDelete Action="Cascade" />
   </End>
   <End Role="Orders"
        Type="ExampleModel.Store.Orders" Multiplicity="*" />
   <ReferentialConstraint>
     <Principal Role="Customers">
       <PropertyRef Name="CustomerId" />
     </Principal>
     <Dependent Role="Orders">
       <PropertyRef Name="CustomerId" />
     </Dependent>
   </ReferentialConstraint>
 </Association>

Elemen Dokumentasi (SSDL)

Elemen Dokumentasi dalam bahasa definisi skema penyimpanan (SSDL) dapat digunakan untuk memberikan informasi tentang objek yang ditentukan dalam elemen induk.

Elemen Dokumentasi dapat memiliki elemen turunan berikut (dalam urutan yang tercantum):

  • Ringkasan: Deskripsi singkat tentang elemen induk. (nol atau satu elemen)
  • LongDescription: Deskripsi ekstensif dari elemen induk. (nol atau satu elemen)

Atribut yang Berlaku

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen Dokumentasi . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk CSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen Dokumentasi sebagai elemen turunan dari elemen EntityType.

 <EntityType Name="Customers">
   <Documentation>
     <Summary>Summary here.</Summary>
     <LongDescription>Long description here.</LongDescription>
   </Documentation>
   <Key>
     <PropertyRef Name="CustomerId" />
   </Key>
   <Property Name="CustomerId" Type="int" Nullable="false" />
   <Property Name="Name" Type="nvarchar(max)" Nullable="false" />
 </EntityType>

Elemen Akhir (SSDL)

Elemen Akhir dalam bahasa definisi skema penyimpanan (SSDL) menentukan tabel dan jumlah baris di salah satu ujung batasan kunci asing dalam database yang mendasar. Elemen Akhir dapat menjadi turunan dari elemen Asosiasi atau elemen AssociationSet. Dalam setiap kasus, elemen anak yang mungkin dan atribut yang berlaku berbeda.

Elemen Akhir sebagai Anak dari Elemen Asosiasi

Elemen Akhir (sebagai anak dari elemen Asosiasi) menentukan tabel dan jumlah baris di akhir batasan kunci asing dengan atribut Jenis dan Perkalian masing-masing. Akhir batasan kunci asing didefinisikan sebagai bagian dari asosiasi SSDL; asosiasi SSDL harus memiliki dua ujung yang tepat.

Elemen Akhir dapat memiliki elemen turunan berikut (dalam urutan yang tercantum):

  • Dokumentasi (nol atau satu elemen)
  • OnDelete (nol atau satu elemen)
  • Elemen anotasi (nol atau lebih elemen)

Atribut yang Berlaku

Tabel berikut ini menjelaskan atribut yang dapat diterapkan ke elemen Akhir saat merupakan turunan dari elemen Asosiasi .

Nama Atribut Diperlukan Nilai
Jenis Ya Nama yang sepenuhnya memenuhi syarat dari kumpulan entitas SSDL yang berada di akhir batasan kunci asing.
Peran Tidak Nilai atribut Peran dalam elemen Utama atau Dependen dari elemen ReferentialConstraint yang sesuai (jika digunakan).
Beberapa Ya 1, 0..1, atau * tergantung pada jumlah baris yang dapat berada di akhir batasan kunci asing.
1 menunjukkan bahwa tepat satu baris ada di ujung batasan kunci asing.
0..1 menunjukkan bahwa nol atau satu baris ada di ujung batasan kunci asing.
* menunjukkan bahwa nol, satu, atau beberapa baris ada di ujung batasan kunci asing.

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen Akhir . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk CSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen Asosiasi yang menentukan batasan kunci asing FK_CustomerOrders. Nilai Perkalian yang ditentukan pada setiap elemen Akhir menunjukkan bahwa banyak baris dalam tabel Pesanan dapat dikaitkan dengan baris dalam tabel Pelanggan , tetapi hanya satu baris dalam tabel Pelanggan yang dapat dikaitkan dengan baris dalam tabel Pesanan . Selain itu, elemen OnDelete menunjukkan bahwa semua baris dalam tabel Pesanan yang mereferensikan baris tertentu dalam tabel Pelanggan akan dihapus jika baris dalam tabel Pelanggan dihapus.

 <Association Name="FK_CustomerOrders">
   <End Role="Customers"
        Type="ExampleModel.Store.Customers" Multiplicity="1">
     <OnDelete Action="Cascade" />
   </End>
   <End Role="Orders"
        Type="ExampleModel.Store.Orders" Multiplicity="*" />
   <ReferentialConstraint>
     <Principal Role="Customers">
       <PropertyRef Name="CustomerId" />
     </Principal>
     <Dependent Role="Orders">
       <PropertyRef Name="CustomerId" />
     </Dependent>
   </ReferentialConstraint>
 </Association>

Elemen Akhir sebagai Turunan dari Elemen AssociationSet

Elemen Akhir (sebagai anak dari elemen AssociationSet ) menentukan tabel di salah satu ujung batasan kunci asing dalam database yang mendasar.

Elemen Akhir dapat memiliki elemen turunan berikut (dalam urutan yang tercantum):

  • Dokumentasi (nol atau satu)
  • Elemen anotasi (nol atau lebih)

Atribut yang Berlaku

Tabel berikut ini menjelaskan atribut yang dapat diterapkan ke elemen Akhir saat merupakan turunan dari elemen AssociationSet .

Nama Atribut Diperlukan Nilai
EntitySet Ya Nama kumpulan entitas SSDL yang berada di akhir batasan kunci asing.
Peran Tidak Nilai salah satu atribut Peran yang ditentukan pada satu elemen Akhir dari elemen Asosiasi yang sesuai.

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen Akhir . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk CSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen EntityContainer dengan elemen AssociationSet dengan dua elemen Akhir :

 <EntityContainer Name="ExampleModelStoreContainer">
   <EntitySet Name="Customers"
              EntityType="ExampleModel.Store.Customers"
              Schema="dbo" />
   <EntitySet Name="Orders"
              EntityType="ExampleModel.Store.Orders"
              Schema="dbo" />
   <AssociationSet Name="FK_CustomerOrders"
                   Association="ExampleModel.Store.FK_CustomerOrders">
     <End Role="Customers" EntitySet="Customers" />
     <End Role="Orders" EntitySet="Orders" />
   </AssociationSet>
 </EntityContainer>

Elemen EntityContainer (SSDL)

Elemen EntityContainer dalam bahasa definisi skema penyimpanan (SSDL) menjelaskan struktur sumber data yang mendasar dalam aplikasi Kerangka Kerja Entitas: Kumpulan entitas SSDL (ditentukan dalam elemen EntitySet) mewakili tabel dalam database, jenis entitas SSDL (ditentukan dalam elemen EntityType) mewakili baris dalam tabel, dan kumpulan asosiasi (ditentukan dalam elemen AssociationSet) mewakili batasan kunci asing dalam database. Kontainer entitas model penyimpanan memetakan ke kontainer entitas model konseptual melalui elemen EntityContainerMapping.

Elemen EntityContainer dapat memiliki nol atau satu elemen Dokumentasi. Jika ada elemen Dokumentasi, elemen tersebut harus mendahului semua elemen turunan lainnya.

Elemen EntityContainer dapat memiliki nol atau lebih elemen turunan berikut (dalam urutan yang tercantum):

  • EntitySet
  • Himpunan Asosiasi
  • Elemen anotasi

Atribut yang Berlaku

Tabel di bawah ini menjelaskan atribut yang dapat diterapkan ke elemen EntityContainer .

Nama Atribut Diperlukan Nilai
Nama Ya Nama kontainer entitas. Nama ini tidak boleh berisi titik (.).

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen EntityContainer . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk SSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen EntityContainer yang menentukan dua set entitas dan satu set asosiasi. Perhatikan bahwa jenis entitas dan nama jenis asosiasi memenuhi syarat oleh nama namespace model konseptual.

 <EntityContainer Name="ExampleModelStoreContainer">
   <EntitySet Name="Customers"
              EntityType="ExampleModel.Store.Customers"
              Schema="dbo" />
   <EntitySet Name="Orders"
              EntityType="ExampleModel.Store.Orders"
              Schema="dbo" />
   <AssociationSet Name="FK_CustomerOrders"
                   Association="ExampleModel.Store.FK_CustomerOrders">
     <End Role="Customers" EntitySet="Customers" />
     <End Role="Orders" EntitySet="Orders" />
   </AssociationSet>
 </EntityContainer>

Elemen EntitySet (SSDL)

Elemen EntitySet dalam bahasa definisi skema penyimpanan (SSDL) mewakili tabel atau tampilan dalam database yang mendasar. Elemen EntityType di SSDL mewakili baris dalam tabel atau tampilan. Atribut EntityType dari elemen EntitySet menentukan jenis entitas SSDL tertentu yang mewakili baris dalam kumpulan entitas SSDL. Pemetaan antara kumpulan entitas CSDL dan kumpulan entitas SSDL ditentukan dalam elemen EntitySetMapping.

Elemen EntitySet dapat memiliki elemen turunan berikut (dalam urutan yang tercantum):

  • Dokumentasi (nol atau satu elemen)
  • DefiningQuery (nol atau satu elemen)
  • Elemen anotasi

Atribut yang Berlaku

Tabel berikut menjelaskan atribut yang dapat diterapkan ke elemen EntitySet .

Catatan

Beberapa atribut (tidak tercantum di sini) mungkin memenuhi syarat dengan alias toko . Atribut ini digunakan oleh Wizard Perbarui Model saat memperbarui model.

Nama Atribut Diperlukan Nilai
Nama Ya Nama kumpulan entitas.
EntityType Ya Nama yang sepenuhnya memenuhi syarat dari jenis entitas yang set entitasnya berisi instans.
Skema Tidak Skema database.
Tabel Tidak Tabel database.

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen EntitySet . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk SSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen EntityContainer yang memiliki dua elemen EntitySet dan satu elemen AssociationSet:

 <EntityContainer Name="ExampleModelStoreContainer">
   <EntitySet Name="Customers"
              EntityType="ExampleModel.Store.Customers"
              Schema="dbo" />
   <EntitySet Name="Orders"
              EntityType="ExampleModel.Store.Orders"
              Schema="dbo" />
   <AssociationSet Name="FK_CustomerOrders"
                   Association="ExampleModel.Store.FK_CustomerOrders">
     <End Role="Customers" EntitySet="Customers" />
     <End Role="Orders" EntitySet="Orders" />
   </AssociationSet>
 </EntityContainer>

EntityType Element (SSDL)

Elemen EntityType dalam bahasa definisi skema penyimpanan (SSDL) mewakili baris dalam tabel atau tampilan database yang mendasar. Elemen EntitySet di SSDL mewakili tabel atau tampilan tempat baris terjadi. Atribut EntityType dari elemen EntitySet menentukan jenis entitas SSDL tertentu yang mewakili baris dalam kumpulan entitas SSDL. Pemetaan antara jenis entitas SSDL dan jenis entitas CSDL ditentukan dalam elemen EntityTypeMapping.

Elemen EntityType dapat memiliki elemen turunan berikut (dalam urutan yang tercantum):

  • Dokumentasi (nol atau satu elemen)
  • Kunci (nol atau satu elemen)
  • Elemen anotasi

Atribut yang Berlaku

Tabel di bawah ini menjelaskan atribut yang dapat diterapkan ke elemen EntityType .

Nama Atribut Diperlukan Nilai
Nama Ya Nama jenis entitas. Nilai ini biasanya sama dengan nama tabel di mana jenis entitas mewakili baris. Nilai ini tidak boleh berisi titik (.).

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen EntityType . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk SSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen EntityType dengan dua properti:

 <EntityType Name="Customers">
   <Documentation>
     <Summary>Summary here.</Summary>
     <LongDescription>Long description here.</LongDescription>
   </Documentation>
   <Key>
     <PropertyRef Name="CustomerId" />
   </Key>
   <Property Name="CustomerId" Type="int" Nullable="false" />
   <Property Name="Name" Type="nvarchar(max)" Nullable="false" />
 </EntityType>

Elemen Fungsi (SSDL)

Elemen Fungsi dalam bahasa definisi skema penyimpanan (SSDL) menentukan prosedur tersimpan yang ada dalam database yang mendasar.

Elemen Fungsi dapat memiliki elemen turunan berikut (dalam urutan yang tercantum):

  • Dokumentasi (nol atau satu)
  • Parameter (nol atau lebih)
  • CommandText (nol atau satu)
  • ReturnType (nol atau lebih)
  • Elemen anotasi (nol atau lebih)

Jenis pengembalian untuk fungsi harus ditentukan dengan elemen ReturnType atau atribut ReturnType (lihat di bawah), tetapi tidak keduanya.

Prosedur tersimpan yang ditentukan dalam model penyimpanan dapat diimpor ke dalam model konseptual aplikasi. Untuk informasi selengkapnya, lihat Mengkueri dengan Prosedur Tersimpan. Elemen Fungsi juga dapat digunakan untuk menentukan fungsi kustom dalam model penyimpanan.  

Atribut yang Berlaku

Tabel berikut ini menjelaskan atribut yang dapat diterapkan ke elemen Fungsi .

Catatan

Beberapa atribut (tidak tercantum di sini) mungkin memenuhi syarat dengan alias toko . Atribut ini digunakan oleh Wizard Perbarui Model saat memperbarui model.

Nama Atribut Diperlukan Nilai
Nama Ya Nama prosedur tersimpan.
ReturnType Tidak Jenis pengembalian prosedur tersimpan.
Aggregat Tidak True jika prosedur tersimpan mengembalikan nilai agregat; jika tidak , False.
Builtin Tidak True jika fungsi adalahfungsi bawaan 1 ; jika tidak , False.
StoreFunctionName Tidak Nama prosedur tersimpan.
NiladicFunction Tidak Benar jika fungsinya adalah fungsi niladik2 ; Salah jika tidak.
Dapat Dikomposisikan Tidak True jika fungsi adalah fungsi 3 yang dapat dikomposit; Salah jika tidak.
ParameterTypeSemantics Tidak Enumerasi yang mendefinisikan semantik jenis yang digunakan untuk mengatasi kelebihan beban fungsi. Enumerasi ditentukan dalam manifes penyedia per definisi fungsi. Nilai defaultnya adalah AllowImplicitConversion.
Skema Tidak Nama skema di mana prosedur tersimpan ditentukan.

1 Fungsi bawaan adalah fungsi yang ditentukan dalam database. Untuk informasi tentang fungsi yang ditentukan dalam model penyimpanan, lihat CommandText Element (SSDL).

2 Fungsi niladik adalah fungsi yang tidak menerima parameter dan, ketika dipanggil, tidak memerlukan tanda kurung.

3 Dua fungsi dapat dikomposisikan jika output dari satu fungsi dapat menjadi input untuk fungsi lainnya.

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen Fungsi . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk SSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen Fungsi yang sesuai dengan prosedur tersimpan UpdateOrderQuantity. Prosedur tersimpan menerima dua parameter dan tidak mengembalikan nilai.

 <Function Name="UpdateOrderQuantity"
           Aggregate="false"
           BuiltIn="false"
           NiladicFunction="false"
           IsComposable="false"
           ParameterTypeSemantics="AllowImplicitConversion"
           Schema="dbo">
   <Parameter Name="orderId" Type="int" Mode="In" />
   <Parameter Name="newQuantity" Type="int" Mode="In" />
 </Function>

Elemen Kunci (SSDL)

Elemen Kunci dalam bahasa definisi skema penyimpanan (SSDL) mewakili kunci utama tabel dalam database yang mendasar. Kunci adalah elemen turunan dari elemen EntityType, yang mewakili baris dalam tabel. Kunci utama didefinisikan dalam elemen Kunci dengan merujuk satu atau beberapa elemen Properti yang ditentukan pada elemen EntityType .

Elemen Key dapat memiliki elemen turunan berikut (dalam urutan yang tercantum):

  • PropertyRef (satu atau beberapa)
  • Elemen anotasi

Tidak ada atribut yang berlaku untuk elemen Kunci .

Contoh

Contoh berikut menunjukkan elemen EntityType dengan kunci yang mereferensikan satu properti:

 <EntityType Name="Customers">
   <Documentation>
     <Summary>Summary here.</Summary>
     <LongDescription>Long description here.</LongDescription>
   </Documentation>
   <Key>
     <PropertyRef Name="CustomerId" />
   </Key>
   <Property Name="CustomerId" Type="int" Nullable="false" />
   <Property Name="Name" Type="nvarchar(max)" Nullable="false" />
 </EntityType>

Elemen OnDelete (SSDL)

Elemen OnDelete dalam bahasa definisi skema penyimpanan (SSDL) mencerminkan perilaku database ketika baris yang berpartisipasi dalam batasan kunci asing dihapus. Jika tindakan diatur ke Cascade, maka baris yang mereferensikan baris yang sedang dihapus juga akan dihapus. Jika tindakan diatur ke Tidak Ada, maka baris yang mereferensikan baris yang sedang dihapus tidak juga dihapus. Elemen OnDelete adalah elemen turunan dari elemen Akhir.

Elemen OnDelete dapat memiliki elemen turunan berikut (dalam urutan yang tercantum):

  • Dokumentasi (nol atau satu)
  • Elemen anotasi (nol atau lebih)

Atribut yang Berlaku

Tabel berikut ini menjelaskan atribut yang dapat diterapkan ke elemen OnDelete .

Nama Atribut Diperlukan Nilai
Tindakan Ya Kaskade atau Tidak Ada. (Nilai Dibatasi valid tetapi memiliki perilaku yang sama dengan Tidak Ada.)

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen OnDelete . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk SSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen Asosiasi yang menentukan batasan kunci asing FK_CustomerOrders. Elemen OnDelete menunjukkan bahwa semua baris dalam tabel Pesanan yang mereferensikan baris tertentu dalam tabel Pelanggan akan dihapus jika baris dalam tabel Pelanggan dihapus.

 <Association Name="FK_CustomerOrders">
   <End Role="Customers"
        Type="ExampleModel.Store.Customers" Multiplicity="1">
     <OnDelete Action="Cascade" />
   </End>
   <End Role="Orders"
        Type="ExampleModel.Store.Orders" Multiplicity="*" />
   <ReferentialConstraint>
     <Principal Role="Customers">
       <PropertyRef Name="CustomerId" />
     </Principal>
     <Dependent Role="Orders">
       <PropertyRef Name="CustomerId" />
     </Dependent>
   </ReferentialConstraint>
 </Association>

Elemen Parameter (SSDL)

Elemen Parameter dalam bahasa definisi skema penyimpanan (SSDL) adalah turunan dari elemen Fungsi yang menentukan parameter untuk prosedur tersimpan dalam database.

Elemen Parameter dapat memiliki elemen turunan berikut (dalam urutan yang tercantum):

  • Dokumentasi (nol atau satu)
  • Elemen anotasi (nol atau lebih)

Atribut yang Berlaku

Tabel di bawah ini menjelaskan atribut yang dapat diterapkan ke elemen Parameter .

Nama Atribut Diperlukan Nilai
Nama Ya Nama parameter.
Jenis Ya Jenis parameter
Mode Tidak Dalam, Keluar, atau InOut tergantung pada apakah parameter adalah parameter input, output, atau input/output.
MaxLength Tidak Panjang maksimum parameter.
Presisi Tidak Presisi parameter.
Skala Tidak Skala parameter.
SRID Tidak Pengidentifikasi Referensi Sistem Spasial. Hanya berlaku untuk parameter jenis spasial. Untuk informasi selengkapnya, lihat SRID dan SRID (SQL Server).

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen Parameter . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk SSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen Fungsi yang memiliki dua elemen Parameter yang menentukan parameter input:

 <Function Name="UpdateOrderQuantity"
           Aggregate="false"
           BuiltIn="false"
           NiladicFunction="false"
           IsComposable="false"
           ParameterTypeSemantics="AllowImplicitConversion"
           Schema="dbo">
   <Parameter Name="orderId" Type="int" Mode="In" />
   <Parameter Name="newQuantity" Type="int" Mode="In" />
 </Function>

Elemen Utama (SSDL)

Elemen Utama dalam bahasa definisi skema penyimpanan (SSDL) adalah elemen turunan ke elemen ReferentialConstraint yang menentukan akhir utama dari batasan kunci asing (juga disebut batasan referensial). Elemen Utama menentukan kolom kunci utama (atau kolom) dalam tabel yang dirujuk oleh kolom lain (atau kolom). Elemen PropertyRef menentukan kolom mana yang direferensikan. Elemen Dependen menentukan kolom yang mereferensikan kolom kunci utama yang ditentukan dalam elemen Utama .

Elemen Utama dapat memiliki elemen turunan berikut (dalam urutan yang tercantum):

  • PropertyRef (satu atau beberapa)
  • Elemen anotasi (nol atau lebih)

Atribut yang Berlaku

Tabel berikut menjelaskan atribut yang dapat diterapkan ke elemen Utama .

Nama Atribut Diperlukan Nilai
Peran Ya Nilai yang sama dengan atribut Peran (jika digunakan) dari elemen Akhir yang sesuai; jika tidak, nama tabel yang berisi kolom yang dirujuk.

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen Utama . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk CSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen Asosiasi yang menggunakan elemen ReferentialConstraint untuk menentukan kolom yang berpartisipasi dalam batasan kunci asing FK_CustomerOrders . Elemen Utama menentukan kolom CustomerId dari tabel Pelanggan sebagai akhir utama batasan.

 <Association Name="FK_CustomerOrders">
   <End Role="Customers"
        Type="ExampleModel.Store.Customers" Multiplicity="1">
     <OnDelete Action="Cascade" />
   </End>
   <End Role="Orders"
        Type="ExampleModel.Store.Orders" Multiplicity="*" />
   <ReferentialConstraint>
     <Principal Role="Customers">
       <PropertyRef Name="CustomerId" />
     </Principal>
     <Dependent Role="Orders">
       <PropertyRef Name="CustomerId" />
     </Dependent>
   </ReferentialConstraint>
 </Association>

Elemen Properti (SSDL)

Elemen Properti dalam bahasa definisi skema penyimpanan (SSDL) mewakili kolom dalam tabel dalam database yang mendasar. Elemen properti adalah turunan dari elemen EntityType, yang mewakili baris dalam tabel. Setiap elemen Properti yang ditentukan pada elemen EntityType mewakili kolom.

Elemen Properti tidak boleh memiliki elemen turunan.

Atribut yang Berlaku

Tabel berikut ini menjelaskan atribut yang dapat diterapkan ke elemen Properti .

Nama Atribut Diperlukan Nilai
Nama Ya Nama kolom yang sesuai.
Jenis Ya Jenis kolom yang sesuai.
Dapat diubah ke null Tidak True (nilai default) atau False tergantung pada apakah kolom yang sesuai dapat memiliki nilai null.
DefaultValue Tidak Nilai default kolom terkait.
MaxLength Tidak Panjang maksimum kolom yang sesuai.
FixedLength Tidak True atau False tergantung pada apakah nilai kolom yang sesuai akan disimpan sebagai string panjang tetap.
Presisi Tidak Presisi kolom yang sesuai.
Skala Tidak Skala kolom yang sesuai.
Unicode Tidak True atau False tergantung pada apakah nilai kolom yang sesuai akan disimpan sebagai string Unicode.
Kolase Tidak String yang menentukan urutan penyatuan yang akan digunakan dalam sumber data.
SRID Tidak Pengidentifikasi Referensi Sistem Spasial. Hanya berlaku untuk properti jenis spasial. Untuk informasi selengkapnya, lihat SRID dan SRID (SQL Server).
StoreGeneratedPattern Tidak Tidak ada, Identitas (jika nilai kolom yang sesuai adalah identitas yang dihasilkan dalam database), atau Komputasi (jika nilai kolom yang sesuai dihitung dalam database). Tidak Valid untuk properti RowType.

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen Properti . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk SSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen EntityType dengan dua elemen Properti anak:

 <EntityType Name="Customers">
   <Documentation>
     <Summary>Summary here.</Summary>
     <LongDescription>Long description here.</LongDescription>
   </Documentation>
   <Key>
     <PropertyRef Name="CustomerId" />
   </Key>
   <Property Name="CustomerId" Type="int" Nullable="false" />
   <Property Name="Name" Type="nvarchar(max)" Nullable="false" />
 </EntityType>

Elemen PropertyRef (SSDL)

Elemen PropertyRef dalam bahasa definisi skema penyimpanan (SSDL) mereferensikan properti yang ditentukan pada elemen EntityType untuk menunjukkan bahwa properti akan melakukan salah satu peran berikut:

  • Jadilah bagian dari kunci utama tabel yang diwakili EntityType . Satu atau beberapa elemen PropertyRef dapat digunakan untuk menentukan kunci primer. Untuk informasi selengkapnya, lihat Elemen kunci.
  • Jadilah akhir dependen atau utama dari batasan referensial. Untuk informasi selengkapnya, lihat Elemen ReferentialConstraint.

Elemen PropertyRef hanya dapat memiliki elemen turunan berikut:

  • Dokumentasi (nol atau satu)
  • Elemen anotasi

Atribut yang Berlaku

Tabel di bawah ini menjelaskan atribut yang dapat diterapkan ke elemen PropertyRef .

Nama Atribut Diperlukan Nilai
Nama Ya Nama properti yang dirujuk.

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen PropertyRef . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk CSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen PropertyRef yang digunakan untuk menentukan kunci utama dengan merujuk properti yang ditentukan pada elemen EntityType.

 <EntityType Name="Customers">
   <Documentation>
     <Summary>Summary here.</Summary>
     <LongDescription>Long description here.</LongDescription>
   </Documentation>
   <Key>
     <PropertyRef Name="CustomerId" />
   </Key>
   <Property Name="CustomerId" Type="int" Nullable="false" />
   <Property Name="Name" Type="nvarchar(max)" Nullable="false" />
 </EntityType>

Elemen ReferentialConstraint (SSDL)

Elemen ReferentialConstraint dalam bahasa definisi skema penyimpanan (SSDL) mewakili batasan kunci asing (juga disebut batasan integritas referensial) dalam database yang mendasar. Ujung utama dan dependen dari batasan ditentukan oleh elemen anak Utama dan Dependen, masing-masing. Kolom yang berpartisipasi dalam ujung utama dan dependen direferensikan dengan elemen PropertyRef.

Elemen ReferentialConstraint adalah elemen turunan opsional dari elemen Asosiasi. Jika elemen ReferentialConstraint tidak digunakan untuk memetakan batasan kunci asing yang ditentukan dalam elemen Asosiasi, elemen AssociationSetMapping harus digunakan untuk melakukan ini.

Elemen ReferentialConstraint dapat memiliki elemen turunan berikut:

  • Dokumentasi (nol atau satu)
  • Utama (tepat satu)
  • Dependen (tepat satu)
  • Elemen anotasi (nol atau lebih)

Atribut yang Berlaku

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen ReferentialConstraint . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk SSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menunjukkan elemen Asosiasi yang menggunakan elemen ReferentialConstraint untuk menentukan kolom yang berpartisipasi dalam FK_CustomerOrders batasan kunci asing:

 <Association Name="FK_CustomerOrders">
   <End Role="Customers"
        Type="ExampleModel.Store.Customers" Multiplicity="1">
     <OnDelete Action="Cascade" />
   </End>
   <End Role="Orders"
        Type="ExampleModel.Store.Orders" Multiplicity="*" />
   <ReferentialConstraint>
     <Principal Role="Customers">
       <PropertyRef Name="CustomerId" />
     </Principal>
     <Dependent Role="Orders">
       <PropertyRef Name="CustomerId" />
     </Dependent>
   </ReferentialConstraint>
 </Association>

Elemen ReturnType (SSDL)

Elemen ReturnType dalam bahasa definisi skema penyimpanan (SSDL) menentukan jenis pengembalian untuk fungsi yang ditentukan dalam elemen Fungsi . Jenis pengembalian fungsi juga dapat ditentukan dengan atribut ReturnType .

Jenis pengembalian fungsi ditentukan dengan atribut Jenis atau elemen ReturnType .

Elemen ReturnType dapat memiliki elemen turunan berikut:

  • CollectionType (satu)

Catatan

Sejumlah atribut anotasi (atribut XML kustom) dapat diterapkan ke elemen ReturnType . Namun, atribut kustom mungkin bukan milik namespace XML apa pun yang dicadangkan untuk SSDL. Nama yang sepenuhnya memenuhi syarat untuk dua atribut kustom tidak boleh sama.

Contoh

Contoh berikut menggunakan Fungsi yang mengembalikan kumpulan baris.

   <Function Name="GetProducts" IsComposable="true" Schema="dbo">
     <ReturnType>
       <CollectionType>
         <RowType>
           <Property Name="ProductID" Type="int" Nullable="false" />
           <Property Name="CategoryID" Type="bigint" Nullable="false" />
           <Property Name="ProductName" Type="nvarchar" MaxLength="40" Nullable="false" />
           <Property Name="UnitPrice" Type="money" />
           <Property Name="Discontinued" Type="bit" />
         </RowType>
       </CollectionType>
     </ReturnType>
   </Function>

RowType Element (SSDL)

Elemen RowType dalam bahasa definisi skema penyimpanan (SSDL) mendefinisikan struktur yang tidak disebutkan namanya sebagai jenis pengembalian untuk fungsi yang ditentukan di penyimpanan.

Elemen RowType adalah elemen turunan dari elemen CollectionType :

Elemen RowType dapat memiliki elemen turunan berikut:

  • Properti (satu atau beberapa)

Contoh

Contoh berikut menunjukkan fungsi penyimpanan yang menggunakan elemen CollectionType untuk menentukan bahwa fungsi mengembalikan kumpulan baris (seperti yang ditentukan dalam elemen RowType ).

   <Function Name="GetProducts" IsComposable="true" Schema="dbo">
     <ReturnType>
       <CollectionType>
         <RowType>
           <Property Name="ProductID" Type="int" Nullable="false" />
           <Property Name="CategoryID" Type="bigint" Nullable="false" />
           <Property Name="ProductName" Type="nvarchar" MaxLength="40" Nullable="false" />
           <Property Name="UnitPrice" Type="money" />
           <Property Name="Discontinued" Type="bit" />
         </RowType>
       </CollectionType>
     </ReturnType>
   </Function>

Elemen Skema (SSDL)

Elemen Skema dalam bahasa definisi skema penyimpanan (SSDL) adalah elemen akar dari definisi model penyimpanan. Ini berisi definisi untuk objek, fungsi, dan kontainer yang membentuk model penyimpanan.

Elemen Skema mungkin berisi nol atau beberapa elemen turunan berikut:

  • Asosiasi
  • EntityType
  • EntityContainer
  • Fungsi

Elemen Skema menggunakan atribut Namespace untuk menentukan namespace untuk jenis entitas dan objek asosiasi dalam model penyimpanan. Dalam namespace, tidak ada dua objek yang dapat memiliki nama yang sama.

Namespace layanan model penyimpanan berbeda dari namespace XML elemen Skema . Namespace layanan model penyimpanan (seperti yang didefinisikan oleh atribut Namespace ) adalah kontainer logis untuk jenis entitas dan jenis asosiasi. Namespace XML (ditunjukkan oleh atribut xmlns ) dari elemen Skema adalah namespace default untuk elemen turunan dan atribut elemen Skema . Namespace XML formulir https://schemas.microsoft.com/ado/YYYY/MM/edm/ssdl (di mana YYYY dan MM masing-masing mewakili satu tahun dan bulan) dicadangkan untuk SSDL. Elemen dan atribut kustom tidak dapat berada di namespace layanan yang memiliki formulir ini.

Atribut yang Berlaku

Tabel di bawah ini menjelaskan atribut dapat diterapkan ke elemen Skema .

Nama Atribut Diperlukan Nilai
Namespace Layanan Ya Namespace model penyimpanan. Nilai atribut Namespace digunakan untuk membentuk nama jenis yang sepenuhnya memenuhi syarat. Misalnya, jika EntityType bernama Pelanggan berada di namespace ExampleModel.Store, maka nama EntityType yang sepenuhnya memenuhi syarat adalah ExampleModel.Store.Customer.
String berikut tidak dapat digunakan sebagai nilai untuk atribut Namespace : System, Transient, atau Edm. Nilai untuk atribut Namespace tidak boleh sama dengan nilai untuk atribut Namespace dalam elemen Skema CSDL.
Alias Tidak Pengidentifikasi yang digunakan sebagai pengganti nama namespace. Misalnya, jika EntityType bernama Pelanggan berada di namespace ExampleModel.Store dan nilai atribut Alias adalah StorageModel, maka Anda dapat menggunakan StorageModel.Customer sebagai nama EntityType yang sepenuhnya memenuhi syarat.
Penyedia Ya Penyedia data.
ProviderManifestToken Ya Token yang menunjukkan kepada penyedia manifes penyedia mana yang akan dikembalikan. Tidak ada format untuk token yang ditentukan. Nilai untuk token ditentukan oleh penyedia. Untuk informasi tentang token manifes penyedia SQL Server, lihat SqlClient untuk Kerangka Kerja Entitas.

Contoh

Contoh berikut menunjukkan elemen Skema yang berisi elemen EntityContainer, dua elemen EntityType, dan satu elemen Asosiasi.

 <Schema Namespace="ExampleModel.Store"
       Alias="Self" Provider="System.Data.SqlClient"
       ProviderManifestToken="2008"
       xmlns="https://schemas.microsoft.com/ado/2009/11/edm/ssdl">
   <EntityContainer Name="ExampleModelStoreContainer">
     <EntitySet Name="Customers"
                EntityType="ExampleModel.Store.Customers"
                Schema="dbo" />
     <EntitySet Name="Orders"
                EntityType="ExampleModel.Store.Orders"
                Schema="dbo" />
     <AssociationSet Name="FK_CustomerOrders"
                     Association="ExampleModel.Store.FK_CustomerOrders">
       <End Role="Customers" EntitySet="Customers" />
       <End Role="Orders" EntitySet="Orders" />
     </AssociationSet>
   </EntityContainer>
   <EntityType Name="Customers">
     <Documentation>
       <Summary>Summary here.</Summary>
       <LongDescription>Long description here.</LongDescription>
     </Documentation>
     <Key>
       <PropertyRef Name="CustomerId" />
     </Key>
     <Property Name="CustomerId" Type="int" Nullable="false" />
     <Property Name="Name" Type="nvarchar(max)" Nullable="false" />
   </EntityType>
   <EntityType Name="Orders" xmlns:c="http://CustomNamespace">
     <Key>
       <PropertyRef Name="OrderId" />
     </Key>
     <Property Name="OrderId" Type="int" Nullable="false"
               c:CustomAttribute="someValue"/>
     <Property Name="ProductId" Type="int" Nullable="false" />
     <Property Name="Quantity" Type="int" Nullable="false" />
     <Property Name="CustomerId" Type="int" Nullable="false" />
     <c:CustomElement>
       Custom data here.
     </c:CustomElement>
   </EntityType>
   <Association Name="FK_CustomerOrders">
     <End Role="Customers"
          Type="ExampleModel.Store.Customers" Multiplicity="1">
       <OnDelete Action="Cascade" />
     </End>
     <End Role="Orders"
          Type="ExampleModel.Store.Orders" Multiplicity="*" />
     <ReferentialConstraint>
       <Principal Role="Customers">
         <PropertyRef Name="CustomerId" />
       </Principal>
       <Dependent Role="Orders">
         <PropertyRef Name="CustomerId" />
       </Dependent>
     </ReferentialConstraint>
   </Association>
   <Function Name="UpdateOrderQuantity"
             Aggregate="false"
             BuiltIn="false"
             NiladicFunction="false"
             IsComposable="false"
             ParameterTypeSemantics="AllowImplicitConversion"
             Schema="dbo">
     <Parameter Name="orderId" Type="int" Mode="In" />
     <Parameter Name="newQuantity" Type="int" Mode="In" />
   </Function>
   <Function Name="UpdateProductInOrder" IsComposable="false">
     <CommandText>
       UPDATE Orders
       SET ProductId = @productId
       WHERE OrderId = @orderId;
     </CommandText>
     <Parameter Name="productId"
                Mode="In"
                Type="int"/>
     <Parameter Name="orderId"
                Mode="In"
                Type="int"/>
   </Function>
 </Schema>

Atribut Anotasi

Atribut anotasi dalam bahasa definisi skema penyimpanan (SSDL) adalah atribut XML kustom dalam model penyimpanan yang menyediakan metadata tambahan tentang elemen dalam model penyimpanan. Selain memiliki struktur XML yang valid, batasan berikut berlaku untuk atribut anotasi:

  • Atribut anotasi tidak boleh berada di namespace XML apa pun yang dicadangkan untuk SSDL.
  • Nama yang sepenuhnya memenuhi syarat dari dua atribut anotasi tidak boleh sama.

Lebih dari satu atribut anotasi dapat diterapkan ke elemen SSDL tertentu. Metadata yang terkandung dalam elemen anotasi dapat diakses pada runtime dengan menggunakan kelas di namespace System.Data.Metadata.Edm.

Contoh

Contoh berikut menunjukkan elemen EntityType yang memiliki atribut anotasi yang diterapkan ke properti OrderId . Contoh juga menunjukkan elemen anotasi yang ditambahkan ke elemen EntityType .

 <EntityType Name="Orders" xmlns:c="http://CustomNamespace">
   <Key>
     <PropertyRef Name="OrderId" />
   </Key>
   <Property Name="OrderId" Type="int" Nullable="false"
             c:CustomAttribute="someValue"/>
   <Property Name="ProductId" Type="int" Nullable="false" />
   <Property Name="Quantity" Type="int" Nullable="false" />
   <Property Name="CustomerId" Type="int" Nullable="false" />
   <c:CustomElement>
     Custom data here.
   </c:CustomElement>
 </EntityType>

Elemen Anotasi (SSDL)

Elemen anotasi dalam bahasa definisi skema penyimpanan (SSDL) adalah elemen XML kustom dalam model penyimpanan yang menyediakan metadata tambahan tentang model penyimpanan. Selain memiliki struktur XML yang valid, batasan berikut berlaku untuk elemen anotasi:

  • Elemen anotasi tidak boleh berada di namespace XML apa pun yang dicadangkan untuk SSDL.
  • Nama yang sepenuhnya memenuhi syarat dari dua elemen anotasi tidak boleh sama.
  • Elemen anotasi harus muncul setelah semua elemen turunan lainnya dari elemen SSDL tertentu.

Lebih dari satu elemen anotasi mungkin merupakan anak dari elemen SSDL tertentu. Dimulai dengan .NET Framework versi 4, metadata yang terkandung dalam elemen anotasi dapat diakses pada runtime dengan menggunakan kelas di namespace System.Data.Metadata.Edm.

Contoh

Contoh berikut menunjukkan elemen EntityType yang memiliki elemen anotasi (CustomElement). Contohnya juga menunjukkan atribut anotasi yang diterapkan ke properti OrderId .

 <EntityType Name="Orders" xmlns:c="http://CustomNamespace">
   <Key>
     <PropertyRef Name="OrderId" />
   </Key>
   <Property Name="OrderId" Type="int" Nullable="false"
             c:CustomAttribute="someValue"/>
   <Property Name="ProductId" Type="int" Nullable="false" />
   <Property Name="Quantity" Type="int" Nullable="false" />
   <Property Name="CustomerId" Type="int" Nullable="false" />
   <c:CustomElement>
     Custom data here.
   </c:CustomElement>
 </EntityType>

Faset (SSDL)

Faset dalam bahasa definisi skema penyimpanan (SSDL) mewakili batasan pada jenis kolom yang ditentukan dalam elemen Properti. Faset diimplementasikan sebagai atribut XML pada elemen Properti .

Tabel berikut ini menjelaskan faset yang didukung di SSDL:

Facet Deskripsi
Kolase Menentukan susunan urutan (atau urutan pengurutan) yang akan digunakan saat melakukan operasi perbandingan dan pengurutan pada nilai properti.
FixedLength Menentukan apakah panjang nilai kolom dapat bervariasi.
MaxLength Menentukan panjang maksimum nilai kolom.
Presisi Untuk properti jenis Desimal, menentukan jumlah digit yang dapat dimiliki nilai properti. Untuk properti jenis Time, DateTime, dan DateTimeOffset, menentukan jumlah digit untuk bagian pecahan detik dari nilai kolom.
Skala Menentukan jumlah digit di sebelah kanan titik desimal untuk nilai kolom.
Unicode Menunjukkan apakah nilai kolom disimpan sebagai Unicode.