Bagikan melalui


Membangun Jenis (Entity SQL)

Entity SQL menyediakan tiga jenis konstruktor: konstruktor baris, konstruktor jenis bernama, dan konstruktor koleksi.

Konstruktor Baris

Anda menggunakan konstruktor baris di Entity SQL untuk membangun rekaman anonim yang secara struktural berjenis dari satu nilai atau lebih. Jenis hasil konstruktor baris adalah jenis baris yang jenis bidangnya bersesuaian dengan jenis nilai yang digunakan untuk membangun baris. Misalnya, ekspresi berikut membangun nilai jenis Record(a int, b string, c int):

ROW(1 AS a, "abc" AS b, a + 34 AS c)

Jika Anda tidak memberikan alias untuk ekspresi dalam konstruktor baris, Kerangka Kerja Entitas akan mencoba membuatnya. Untuk informasi selengkapnya, lihat bagian "Aturan Pembuatan Alias" di Pengidentifikasi.

Aturan berikut berlaku untuk pembuatan alias ekspresi dalam konstruktor baris:

  • Ekspresi dalam konstruktor baris tidak dapat merujuk ke alias lain di konstruktor yang sama.
  • Dua ekspresi dalam konstruktor baris yang sama tidak boleh memiliki alias yang sama.

Untuk informasi selengkapnya tentang konstruktor baris, lihat ROW.

Konstruktor Koleksi

Anda menggunakan konstruktor koleksi di Entity SQL untuk membuat instans multiset dari daftar nilai. Semua nilai dalam konstruktor harus memiliki jenis yang saling kompatibel T, dan konstruktor menghasilkan kumpulan jenis Multiset<T>. Misalnya, ekspresi berikut membuat kumpulan bilangan bulat:

Multiset(1, 2, 3)

{1, 2, 3}

Konstruktor multiset kosong tidak diperbolehkan karena jenis elemen tidak dapat ditentukan. Berikut ini tidak valid:

multiset() {}

Untuk informasi selengkapnya, lihat MULTISET.

Konstruktor Jenis Bernama (Penginisialisasi NamedType)

Entity SQL memungkinkan konstruktor jenis (inisiator) untuk membuat instans jenis kompleks bernama dan jenis entitas. Misalnya, ekspresi berikut membuat instans jenis Person.

Person("abc", 12)

Ekspresi berikut membuat instans jenis yang kompleks.

MyModel.ZipCode('98118', '4567')

Ekspresi berikut membuat instans jenis kompleks bertingkat.

MyModel.AddressInfo('My street address', 'Seattle', 'WA', MyModel.ZipCode('98118', '4567'))

Ekspresi berikut membuat instans entitas dengan jenis kompleks bertingkat.

MyModel.Person("Bill", MyModel.AddressInfo('My street address', 'Seattle', 'WA', MyModel.ZipCode('98118', '4567')))

Contoh berikut menunjukkan cara menginisialisasi properti jenis kompleks menjadi null. MyModel.ZipCode('98118', null)

Argumen untuk konstruktor diasumsikan dalam urutan yang sama dengan deklarasi atribut jenis.

Untuk informasi selengkapnya, lihat Konstruktor Jenis Bernama.

Lihat juga