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).
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"))