Aracılığıyla paylaş


Ad Alanları (Entity SQL)

Entity SQL, tür adları, varlık kümeleri, işlevler gibi genel tanımlayıcılar için ad çakışmalarını önlemek için ad alanlarını tanıtır. Entity SQL'deki ad alanı desteği, .NET Framework'teki ad alanı desteğine benzer.

Entity SQL, USING yan tümcesinin iki biçimi sağlar: nitelenmiş ad alanları (ad alanı için daha kısa bir diğer ad sağlanır) ve aşağıdaki örnekte gösterildiği gibi nitelenmemiş ad alanları:

USING System.Data;

USING tsql = System.Data;

Ad Çözümleme Kuralları

Yerel kapsamlarda bir tanımlayıcı çözümlenemiyorsa, Entity SQL adı genel kapsamlarda (ad alanları) bulmaya çalışır. Entity SQL önce tanımlayıcıyı (ön ek) nitelenmiş ad alanlarından biriyle eşleştirmeyi dener. Eşleşme varsa, Entity SQL tanımlayıcının kalan kısmını belirtilen ad alanında çözümlemeye çalışır. Eşleşme bulunmazsa bir özel durum oluşturulur.

Ardından, Entity SQL tanımlayıcı için nitelenmemiş tüm ad alanlarını (prolog'da belirtilen) aramayı dener. Tanımlayıcı tam olarak bir ad alanında bulunabiliyorsa, bu konum döndürülür. Birden fazla ad alanının bu tanımlayıcıyla eşleşmesi varsa, bir özel durum oluşturulur. Tanımlayıcı için hiçbir ad alanı tanımlanamıyorsa, Entity SQL adı aşağıdaki örnekte gösterildiği gibi bir sonraki dışa doğru kapsama ( DbCommand veya DbConnection nesnesi) geçirir:

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

.NET Framework'ten farklar

.NET Framework'te kısmen nitelenmiş ad alanlarını kullanabilirsiniz. Varlık SQL'i buna izin vermiyor.

ADO.NET Kullanımı

Sorgular ADO.NET DbCommand nesneler aracılığıyla ifade edilir. DbCommand nesneler nesneler üzerine DbConnection oluşturulabilir. Ad alanları ve DbConnection nesnelerinin DbCommand bir parçası olarak da belirtilebilir. Varlık SQL'i sorgunun içindeki bir tanımlayıcıyı çözümleyemezse, dış ad alanları yoklanır (benzer kurallara göre).

Ayrıca bkz.