LINQ to SQL 有relation ga… (如果我無get錯你想講的野的話)….
晌IDE, 你可以right click on the class then add “association”…… 又或者, 你自己改佢個xml file加上去都得
至於transaction, 都有的, 你要自己initialize一個TransactionScope的object……….
http://msdn.microsoft.com/en-us/library/bb425822.aspx#linqtosql_topic20
而lazy loading…….. 某程度上都係有的
http://msdn.microsoft.com/en-us/library/bb425822.aspx#linqtosql_topic11 <— look for deferred loading
Commented by PakPak
我知 LINQ 有 Relation,但我比較係想講想法不同。
唔知 node.Child.Child.Parent.Parent 係做左四次 SQL query 定係識得 load 返去同一個 instance 呢?
又如果佢係 self-pointing relation 又點計呢?
我有問佢 LINQ 有無 handle 到比較 complex 的 transaction, row locking, timeout,佢答無。但讀了你的 link,原來係放左入去 LINQ to SQL 個 module 入面。睇落都可以應付到一般簡單要求。
lazy loading
幸好可惜 LINQ 唔係, deferred loading 應該算係 "query on demand" (每一次重新 IEnumerable 時行一次 SELECT)
我想講嘅 lazy loading,係 hibernate 那一種只讀 PK,到需要時再讀 full row。
或者 load 定某幾個 important field,再 on demand 去 query large column。
LINQ 做法係,寫 LINQ 時會正確完全知道自己將會想點用同埋會用邊一個 field,而用 anonymous class 去最少化 data transport 同 heap size。如果後來的 logic 要應用更多 field,你要改原本句 LINQ 或者再執行另一句 LINQ。
Hibernate 做法係,一係你寫 HQL 然後拿 Map;一係 lazy load 整個 proxy object,成個 object 可能傳去唔知去邊比度比邊個操作,再自己係 config file 修改來進行優化。
1 則留言:
Just wanna say hi (from Canada). Been reading your blog and really like your simple insight in technology.
發佈留言