úterý 21. září 2010

WCF RIA Services - update datového zdroje

Hraju si teď trochu s WCF RIA Services. Vcelku zajímavá technologie, ale má i své nedokonalosti. Jako první a asi i dost podstatná je nemožnost změny datového modelu nějakým hezkým automatickým způsobem ;-)
O co jde? Mám vytvořený databázový model, entity model a domain service. Někdy v průběhu vývoje zjistím, že je potřeba udělat nějaké změny a rozšíření v DB. Není problém udělat update v databázi. Entity model lze také jednoduše upravit (v edmx souboru přes pravé tlačítko myši). Jenže co s domain service? Tady jsem zatím narazil. Žádná automatika není (nebo jo? :-O). Trochu jsem po tom pátrat a našel jsem jen takový work around. Vytvořit nový dočasný domain service pouze pro novou tabulku. Jeho obsah následně přenést do původního domain service a dočasný smazat. Stejným způsobem přenést i informace o metadatech. V případě změny struktury tabulky se to musí udělat podobně, ale stačí jen takto upravit metadata.
Řešení zatím nic moc, snad se dočkáme v další verzi nějakého pokroku v tomto směru. Na druhou stranu ani ta automatika nebude úplně dokonalá, protože v případě doplnění domain service o vlastní metody a nepoužití partial class, by mohlo dojít ke ztrátě těchto metod.