2010-11-08 54 views
1

我目前喜歡插入:如何使用實體框架插入並獲取PK ID?

MyNamedEntities db = new MyNamedEntities(); 

MyTableEntity field = new MyTableEntity(); 
field.Name = "me"; 

db.MyTableEntity.AddObject(field); 
db.SaveChanges() 

但現在我要插入子元素,我需要的是field.Id部分

MyOtherTableEntity field = new MyOtherTableEntity(); 
field.TableId = new MyTableEntity.First(x => x.Id.Equals(...)); 

我怎樣才能得到field.Id

回答

7

如果您的表格已將Id定義爲INT IDENTITY列,那麼您根本沒有必要做任何事情! :-)

在這種情況下,只需要插入你的實體,並調用.SaveChanges()後,你的對象應包含新Id值:

MyTableEntity field = new MyTableEntity(); 
field.Name = "me"; 

db.MyTableEntity.AddObject(field); 
db.SaveChanges(); 

int newID = field.Id; 
+1

哇,從來沒有看到這個......這是很容易然後:)我的PK總是小數(數字)或Int(int)。謝謝。 – balexandre 2010-11-08 09:59:48

0

用戶也可以直接通過他們的關聯添加到父在保存更改之前或之後 類似這樣的東西。

address a = new address(); a.city =「底特律」; field.address.add(a);

db.SaveChanges();

+0

humm ...這是新的!我會嘗試一下,那會更好,所有的東西都會自動與PK和FK聯繫起來。 – balexandre 2010-11-09 07:36:37