• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    TENCOKACISTROMY: tak s tema view apod potom asi jo - s tim jsem nepocital, pze mi to nepripada z hlediska vyvoje efektivni na spravu a tak (ale to je OT) :) To pak jsou ty LINQ dotazy vazne primitivni a neni v tom asi problem - myslel jsem pripady, kdy se klasicky joinuje, nejaky agregace, subselecty a tak. Tam pak na linq a optimalni dotazy moc neverim..
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BUTHRAKAUR: Tak ja stejne pouzivam view/tabulkovy-funkce/ulozeny-procedury a nasledne pak z selectuju z nich. Takze v tom LINQovym dotazu mam vetsinou jednoduchou WHERE podminku a nejaky ten ORDER BY.

    Na nezavislost mezi aplikaci a databazi neverim, pokud zalezi na vykonnosti a DB se nepouziva jen jako "takovy-lepsi-soubor".
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    TENCOKACISTROMY: akorat mas pak jeste o neco mensi kontrolu nad vygenerovanym dotazem nez u vic low level dotazovacich nastroju IMO.. = SELECT N+1 apod radosti
    VIRTUALVOID
    VIRTUALVOID --- ---
    tak nas MAGIC UNICORN je open-source :)

    Entity Framework Magic Unicorn (and much more!) is now open source with take backs - Scott Hanselman
    http://www.hanselman.com/blog/EntityFrameworkMagicUnicornAndMuchMoreIsNowOpenSourceWithTakeBacks.aspx

    Entity Framework
    http://entityframework.codeplex.com/
    SAJAGI
    SAJAGI --- ---
    BUTHRAKAUR: dík za tip
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BUTHRAKAUR: LINQ mi naopak pripada jako vybornej napad na dotazovani do DB. ze ten AST umi bejt komplikovanej je sice fakt, nicmene pokud se clovek prehoupne pres pocatecni zmateni, tak mi to prijde celkem ok. Navic uz jednou mi zachranil kuzi, kdy jsem diky nemu mohl dost snadno prejit z SqlCE na Db4O (jeste na starickym CF :)).
    MAIMONIDES
    MAIMONIDES --- ---
    ESY: špatný klub, promiňte.
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    jo a ORM jsou nutny zlo, ktery zpusobili zli RDBMS marketingovy specialisti v boji proti objektovym/nerelacnim puristum! ;D
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    SAJAGI: v NH si muzes nadefinovat dodatecny DB funkce (v dialect nebo primo v dotazu pomoci Projections.SqlFunction()) - ty pak jdou pouzivat v criteria API/QueryOver, ale v NH Linq pochybuju.. Stejne je Linq na DB dotazovani prilis abstraktni zlo a podle tvy zminky o linq DB nahrazku v testech to trochu zavani :)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    SAJAGI: No, to je takovej workaround. Vykonu to zrovan moc nepomuze.

    P.S. me ORM nebavi, ale s nim je to tezky a bez nej peklo :)))
    SAJAGI
    SAJAGI --- ---
    TENCOKACISTROMY: No, já v nhibernate nedělám zase tak dlouho, a google mi moc nepomohl. Víceméně podobnou záležitost (vyhledávání podle hashe) nakonec řešili všichni tím, že buď to v DB i v kódu převedli do stringu, nebo počítali hash v databázi (což pro mě není moc možnost, protože počítám hashe až z několika MB).

    (mě to baví :D)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    SAJAGI: nema nhibernate zpusob, jak oznacit nejakou metodu jako "preklad" do SQL? to bys pak mohl pouzit ten SequenceEqual.

    (orm jsou zlo :D)
    SAJAGI
    SAJAGI --- ---
    SAJAGI: Ještě detail, == nejspíš v DB fungovat bude, ale zas to vyhoří na unit testech, kdy se používá LINQ to Objects. Rád bych řešení, které vyhoví oběma...
    SAJAGI
    SAJAGI --- ---
    Potřebuju v databázi vyhledávat podle sloupce typu binary(16) přes LINQ provider (nhibernate). SequenceEqual ale bohužel NHibernate nepodporuje. Napadá vás nějaké elegantní řešení (kromě změny typu v DB na varchar a převodu třeba do hexdec zápisu), jak toho dosáhnout?
    NECROMAN
    NECROMAN --- ---
    ziskal jsem po App Excellence Labu token na registraci Windows 8 Metro aplikace do pre-RTM Windows 8 Store, tak kdyby nekoho zajimaly poznatky, co to obnasi a co bude dale probihat (a co nebude pod NDA :) ), tak se kdyztak ptejte :)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    MORMEGIL: Jo mas pravdu, musis prepsat i to "==", zapomnel jsem to tam pripsat. Bylo prepsane oboje.
    MORMEGIL
    MORMEGIL --- ---
    To je nějaká divná historka. Přepsání metody Equals samo o sobě nijak neovlivní chování operátoru ==. Pokud někdo napsal operátor == tak, že jenom volá to Equals na levém objektu, pak to ovšem chcípne na NullReferenceException (ve tvém případě nullového myArgument; ostatně Equals(null) musí vždy vracet false). V nějakém složitějším případě je pak chyba někde jinde.

    Každopádně takováhle implementace Equals je blbě prostě proto, že to neplní kontrakt metody Equals, protože nikdy nevrátí true, které je však povinnou návratovou hodnotou pro x.Equals(x).
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    MORMEGIL: A co teprve, kdyz nekdo udela:
    public override Equals(object obj) {return false; }

    Jednou jsem se s tim setkal. Divil jsem se jaktoze se mi nevyhodi "ArgumentNullException" pri:
    if(myArgument == null) { throw new ArgumentNullException("myArgument"); }

    Od ty doby svedomite pouzivam object.ReferenceEquals(,) nebo na malejch osobnich toolech "X.IsNull()".
    MORMEGIL
    MORMEGIL --- ---
    TENCOKACISTROMY: A aby člověk měl co poslat na hovnokod.cz
    BRAP242
    BRAP242 --- ---
    dik za tip! jedinej problem, je ze je tam limit, ze ta plachta kterou to vytiskne nemuze bejt vetsi nez 2000 mm (2 metry) - nevite proc, pripadne jak vytisknout nejakou megaplachtu do PDF?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Na vytvareni blbe se hledajicich bugu? :)
    Kliknutím sem můžete změnit nastavení reklam