Programátorská hádanka aneb znáte LINQ to SQL a Entity Framework?

Tomáš Herceg       03.07.2010       SQL, Offtopic, Databáze       11416 zobrazení

Používat LINQ to SQL či Entity Framework jsou zde již poměrně dlouho a mnozí z nás je používají. Známe je ale dobře a víme, co nás kdy může potrefit?

Mám zde dvě hádanky, které čekají na řešitele. Autor nejlepší odpovědi (stručné, ale kompletně pokrývající a vysvětlující daný problém) dostane velmi pěknou a užitečnou cenu. Není nutné spěchat, pořádně si odpovědi rozmyslete.

Bacha! Může to taky být chyták – ptám se, jaká je tam chyba, ale přitom je ten kód naprosto v pořádku a funguje.

1. Co je špatně na následujícím LINQ dotazu? Jak by se to dalo opravit?

 var categoryName = dc.Products.Single(p => p.ProductID == 1).Category.CategoryName;
Console.WriteLine(categoryName);

Předpokládáme následující strukturu databáze (správně jste poznali, že je to starý dobrý Northwind).

Schéma databáze 

 

2. Jaká překvapení nám může přichystat tato metoda, která používá Entity Framework? Stane se to i v LINQ to SQL? Má dané chování nějaké opodstatnění?

 public static string GetData(int? value)
{
using (var dc = new NorthwindEntities())
{
return dc.Test.First(t => t.Value == value).Data;
}
}

 

Otázky jsou formulované velmi vágně a je to tak schválně. Každému, kdo to s programováním myslí vážně, by měl chyby a nedostatky, jsou-li jaké, měl vidět na první pohled.

Odpovědi zasílejte do 11. 7. 2010 23:59:59 na známou adresu.

 [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String("aGVyY2VnQHZibmV0LmN6"))

 

hodnocení článku

1 bodů / 1 hlasů       Hodnotit mohou jen registrované uživatelé.

 

Nový příspěvek

 

                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback