Bagikan melalui


Namespace (Entity SQL)

Entity SQL memperkenalkan namespace layanan untuk menghindari konflik nama untuk pengidentifikasi global seperti nama jenis, set entitas, fungsi, dan sebagainya. Dukungan namespace di Entity SQL mirip dengan dukungan namespace di .NET Framework.

Entity SQL menyediakan dua bentuk klausul USING: namespace yang memenuhi syarat (yaitu alias yang lebih pendek disediakan untuk namespace), dan namespace yang tidak memenuhi syarat, seperti yang diilustrasikan dalam contoh berikut:

USING System.Data;

USING tsql = System.Data;

Aturan Resolusi Nama

Jika pengidentifikasi tidak dapat diselesaikan dalam cakupan lokal, Entity SQL mencoba menemukan nama dalam cakupan global (namespace). Entity SQL pertama kali mencoba mencocokkan pengidentifikasi (awalan) dengan salah satu namespace yang memenuhi syarat. Jika ada kecocokan, Entity SQL mencoba menyelesaikan pengidentifikasi lainnya di namespace yang ditentukan. Jika tidak ada kecocokan yang ditemukan, pengecualian akan dibuat.

Selanjutnya, Entity SQL mencoba mencari semua namespace yang tidak memenuhi syarat (ditentukan dalam prolog) untuk pengidentifikasi. Jika pengidentifikasi dapat terletak tepat di satu namespace, lokasi tersebut dikembalikan. Jika lebih dari satu namespace memiliki kecocokan untuk pengidentifikasi tersebut, pengecualian akan dibuat. Jika tidak ada namespace yang dapat diidentifikasi untuk pengidentifikasi, Entity SQL meneruskan nama ke cakupan luar berikutnya (objek DbCommand atau DbConnection), seperti yang diilustrasikan dalam contoh berikut:

SELECT TREAT(p AS NamespaceName.Employee)
FROM ContainerName.Person AS p
WHERE p IS OF (NamespaceName.Employee)

Perbedaan dari .NET Framework

Di .NET Framework, Anda dapat menggunakan namespace yang memenuhi syarat sebagian. Entity SQL tidak mengizinkan ini.

Penggunaan ADO.NET

Kueri diekspresikan melalui objek DbCommand ADO.NET. Objek DbCommand dapat dibangun di atas objek DbConnection. Namespace juga dapat ditentukan sebagai bagian dari objek DbCommand dan DbConnection. Jika Entity SQL tidak dapat menyelesaikan pengidentifikasi dalam kueri itu sendiri, namespace eksternal akan diselidiki (berdasarkan aturan serupa).

Lihat juga