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 (di mana 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 dilemparkan.

Selanjutnya, Entity SQL mencoba mencari semua namespace layanan yang tidak memenuhi syarat (ditentukan dalam prolog) untuk pengidentifikasi. Jika pengidentifikasi dapat berada di tepat satu namespace layanan, lokasi tersebut dikembalikan. Jika lebih dari satu namespace memiliki kecocokan untuk pengidentifikasi tersebut, pengecualian akan dilemparkan. Jika tidak ada namespace layanan yang dapat diidentifikasi untuk pengidentifikasi, Entity SQL meneruskan nama ke lingkup luar berikutnya ( DbCommand objek 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

Dalam .NET Framework, Anda dapat menggunakan namespace layanan yang memenuhi syarat sebagian. SQL entitas tidak mengizinkan ini.

Penggunaan ADO.NET

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

Lihat juga