Obory názvů (Entity SQL)

Entity SQL zavádí obory názvů, aby nedocházelo ke konfliktům názvů pro globální identifikátory, jako jsou názvy typů, sady entit, funkce atd. Podpora oboru názvů v Entity SQL je podobná podpoře oboru názvů v rozhraní .NET Framework.

Entity SQL poskytuje dvě formy klauzule USING: kvalifikované obory názvů (kde je pro obor názvů poskytován kratší alias) a nekvalifikované obory názvů, jak je znázorněno v následujícím příkladu:

USING System.Data;

USING tsql = System.Data;

Pravidla překladu ip adres

Pokud identifikátor nelze přeložit v místních oborech, entita SQL se pokusí najít název v globálních oborech (obory názvů). Entity SQL se nejprve pokusí spárovat identifikátor (předponu) s jedním z kvalifikovaných oborů názvů. Pokud existuje shoda, entity SQL se pokusí přeložit zbytek identifikátoru v zadaném oboru názvů. Pokud se nenajde žádná shoda, vyvolá se výjimka.

V dalším kroku se Entity SQL pokusí prohledat všechny nekvalifikované obory názvů (zadané v prologu) identifikátoru. Pokud se identifikátor může nacházet v přesně jednom oboru názvů, vrátí se toto umístění. Pokud má více než jeden obor názvů shodu pro tento identifikátor, vyvolá se výjimka. Pokud není možné identifikovat žádný obor názvů pro identifikátor, entita SQL předá název do dalšího vnějšího DbCommand oboru (neboli DbConnection objektu), jak je znázorněno v následujícím příkladu:

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

Rozdíly od rozhraní .NET Framework

V rozhraní .NET Framework můžete použít částečně kvalifikované obory názvů. Entity SQL to nepovoluje.

ADO.NET využití

Dotazy se vyjadřují prostřednictvím ADO.NET DbCommand objektů. DbCommand objekty lze sestavit přes DbConnection objekty. Obory názvů lze také zadat jako součást DbCommand objektů a DbConnection objektů. Pokud Entity SQL nemůže přeložit identifikátor v samotném dotazu, externí obory názvů se probírá (na základě podobných pravidel).

Viz také