星期三, 7月 15, 2009

使用 Entity Framework 新增 child entity 免 parent object

今天要來紀錄一下有關 Entity Framework 效能的小技巧, 話說..我們在新增 relationship table 的資料時, 我們會這樣寫..

image

using (EF.Entities db = new EF.Entities())
{
EF.TableA ta = db.TableA.Where(a => a.ID == 10).First();
EF.TableB eb = new EF.TableB();
eb.TableA = ta;
eb.TableA.TableName = "testB";
db.AddToTableB(eb);
db.SaveChanges();
}

可是仔細看看..這一段code..這會先丟出一個select的tsql去資料庫抓取資料..把資料抓回來後..才去做更新..這樣好像有點脫褲子放屁..對效能也是有點影響的..所以..有另一種方法..不用先select..直接更新就行了..看codeㄅ..

using (EF.Entities db = new EF.Entities())
{
EF.TableB eb = new EF.TableB();
eb.TableA.EntityKey = new EntityKey("Entities.TableA", "ID", 10);
eb.TableA.TableName = "testB";
db.AddToTableB(eb);
db.SaveChanges();
}

這樣就很直接去新增..不會在多繞一圈啦..BugBugBugBugBugBug..不過個人還是喜歡用第一個啦..有 IntellSence 的感覺換取一點點效能..ok低啦..

參考:

1 則留言:

匿名 提到...
網誌管理員已經移除這則留言。