2016-07-14 59 views
0

我想獲得我剛剛創建的客戶的ID插入到userId表中,這將充滿包含在查找表中的信息。我如何從實體框架中獲得自動ID

我的問題是我如何從新創建的客戶中提取id。我使用實體框架6 BTW

tblPortalCustomerInfo _customer = new tblPortalCustomerInfo(); 

_customer.firstName = firstname; 
_customer.middleName = middle; 
_customer.lastName = lastname; 
_customer.IVACODE = ivaCode; 
_customer.email = emailAddress; 

portalEntities.tblPortalCustomerInfoes.Add(_customer); 

tblPortalUser _user = new tblPortalUser(); 
_user.customerInfo = _customer.id; this is where i need the link?. 
_user.EmailAddress = emailAddress; 
_user.password = password; 
_user.isActive = true; 
_user.optinDateStart = DateTime.Now; 

portalEntities.tblPortalUsers.Add(_user); 
portalEntities.tblPortalUsers.Add(_user); 
+0

您必須先添加用戶並將其保存。只有這樣你才能夠得到ID(如果表是自動遞增的) –

回答

2

你必須先插入客戶行,然後它會autmoatically得到與主鍵值爲它產生_customer.id填充想:

tblPortalCustomerInfo _customer = new tblPortalCustomerInfo(); 

_customer.firstName = firstname; 
_customer.middleName = middle; 
_customer.lastName = lastname; 
_customer.IVACODE = ivaCode; 
_customer.email = emailAddress; 

portalEntities.tblPortalCustomerInfoes.Add(_customer); 
portalEntities.SaveChanges(); // insert the customer 


tblPortalUser _user = new tblPortalUser(); 
_user.customerInfo = _customer.id; // now you should have primary key value here 
_user.EmailAddress = emailAddress; 
_user.password = password; 
_user.isActive = true; 
_user.optinDateStart = DateTime.Now; 
+0

謝謝@Ehsan你在表單上的表現相當出名,我認爲它會像傻一樣 – rogue39nin

+0

感謝@david –

1

您需要要在添加新記錄後調用SaveChange()方法,那麼您將獲得新生成的ID