Práce s odpojenými entitami

V aplikaci založené na Entity Frameworku zodpovídá třída kontextu za detekci změn provedených u sledovaných entit. Voláním metody SaveChanges se změny sledované kontextem zachovají v databázi. Při práci s n-vrstvými aplikacemi se objekty entit obvykle mění při odpojení od kontextu a musíte se proto rozhodnout, jak sledovat změny a oznamovat tyto změny zpět kontextu. Toto téma popisuje různé možnosti, které jsou k dispozici při používání Entity Frameworku s odpojenými entitami.

Nadstavby webových služeb

Technologie webových služeb zpravidla podporují vzory, které lze použít k zachování změn u jednotlivých odpojených objektů. Například webové rozhraní API technologie ASP.NET umožňuje naprogramovat akce kontroleru, mezi které patří volání EF pro zachování změn provedených u objektu v databázi. Nástroje webového rozhraní API v sadě Visual Studio usnadňují scaffolding kontroleru webového rozhraní API z modelu Entity Framework 6. Další informace najdete v článku o použití webového rozhraní API s Entity Frameworkem 6.

V minulosti existovalo několik dalších technologií webových služeb, které nabízely integraci s Entity Frameworkem, například Datové služby WCF a Služby RIA.

Nízkoúrovňová rozhraní API pro EF

Pokud nechcete použít existující n-vrstvé řešení nebo chcete upravit, co se děje v akci kontroleru ve službách webového rozhraní API, poskytuje Entity Framework rozhraní API, která umožňují použít změny provedené v odpojené vrstvě. Další informace najdete v článkuPřidání, připojení a stav entity.

Entity s vlastním sledováním

Sledování změn v libovolných grafech entit při odpojení od kontextu EF je značný problém. Jedním z pokusů o jeho vyřešení byla šablona pro generování kódu entit s vlastním sledováním. Tato šablona generuje třídy entit, které obsahují logiku pro sledování změn provedených v odpojené vrstvě jako stavu v samotných entitách. Je rovněž vygenerována sada rozšiřujících metod k uplatnění těchto změn na kontext.

Tuto šablonu lze použít s modely vytvořenými pomocí EF Designeru, ale nelze ji použít s modely Code First. Další informace najdete v článku Entity s vlastním sledováním.

Důležité

Šablonu entit s vlastním sledováním už nedoporučujeme používat. Bude nadále k dispozici jen pro podporu existujících aplikací. Pokud vaše aplikace vyžaduje práci s odpojenými grafy entit, zvažte jiné alternativy, jako jsou sledovatelné entity, což je technologie podobná entitám s vlastním sledováním, která je aktivněji vyvíjena komunitou, nebo vytvoření vlastního kódu pro sledování změn pomocí nízkoúrovňových rozhraní API.