0

假設我有兩個表與一對多關係(EF 4.1中的關聯)。現在我想向table1(公司)添加單個新記錄,並在該公司的table2(服務)中添加一些相應的相關記錄。
company..1 ........ * .. services
總之需要簡寫查詢(Linq to Entity)來處理一對多的數據存儲。
更具體
Ef 4(與LINQ到實體查詢)需要速記查詢使用一對多(添加記錄)

 //add company 
     company company=new company();// company_id primary key 
     company.name="abc"; 
     company.address=""xyz; 
     db.SaveChanges(); 
     //add related Services with foreign key company_id 


更新時間: ::如果我的問題是模糊的或者有毛病要求方面再做告訴我,一般(速記)LINQ到實體查詢與兩個添加新的記錄工作表具有一對多關係。同我們一樣使用

var data=dbContext.table1.Include("table2"); 

回答

0

有作爲數據處理部分「的簡寫查詢」沒有這樣的事來獲取數據。一般實體框架!= LINQ to Entities。除了查詢外,還有很多像ORM一樣的實體框架提供的其他服務。

您可以使用類似於下面的代碼段的方式來添加新的相關實體的對象初始默認的構造函數

var company = new Company { Name = "Foo", Address = "Bar" }; 

var serviceA = new Service { Name = "A"}; 
var serviceB = new Service { Name = "B"}; 

company.Services = new List<Service> { serviceA, serviceB }; 

db.Companies.Add(company); 
db.SaveChanges(); 
+0

小括號是多餘的。意思是,他們完全沒有意義。 – 2012-01-05 08:36:49

+0

Erange我用速記術語查詢,意思是(速記==排序)將Linq排序到實體查詢(用一個到多個r/t在兩個表中添加記錄)。就像我們使用Any(),Include()..等方法 – RollerCosta 2012-01-05 08:39:40

+1

@Kannas數據操作非常依賴手邊的問題和涉及的實體。很少有這種適用於所有數據操作情況的可重用方法。 – Eranga 2012-01-05 08:56:48