摘要:Entity Framework 實作後的想法 (2)
之前有提到在寫 entity framework 在 mapping table 上需要另外透過別的方式去 add , update , delete
基本的 Select 和 關聯式的 Select ( 像 Master / Detail ) 基本上用 Linq 就可以搞定了
但,若是要用到稍微複雜一點 ( 像 Left join ) 查詢的話
用 LINQ 真的很不直覺 ( 指針對這個情況時) ,而且 DefaultByEmpty 這個還只有支援 LINQ to SQL
本想說透過 sp 的方式,掛載到 edmx
但回傳的是 ObjectResult ,再搭配 LINQ 總是遇到一些問題 ( 下次再找個時間針對這個好好地研究 )
最後不得已 ( 已拖了 2 週了 ) 所以只好透過 Enterprise library 把資料取出來
( 還不是因為 MSDN 上面寫的方法是針對 Beta 版的,現在用 VSTS 2008 SP1 的工具設一設就搞定了 害我還真的一個一個去看 edmx 的XML )
但這樣子就會失去 EF 帶來的好處,用起來很不爽 ( 以後有空再想辦法改寫 )
再把 Unit Test 補上去 ok !每一個動作都如預期!
個人認為, EF、Linq to SQL、Linq to eSQL 這一類的東西,並沒有辦法真的完全不需要用到 SQL 語法
而且,對資料庫和 SQL 語法不熟悉的話,對開發人員也是非常不好的
千萬別想說什麼東西都可以用「程式」來解決
SQL 語法可以一次搞定就用 SQL 語法吧!! ( 若是對 SQL 語法想要更進階的話,請多注意楊志強老師的課程or 書,講得很生動又實用 )
而且, LINQ to EF 的語法來做很複雜的語法,以目前來說不太建議。 ( 門檻高 ,又要去驗證轉出來的語法是不是對的 )
我想一定有更好的解決方法的