2011-05-11 26 views
0

我使用實體框架在我的ASP.NET應用程序(.NET 3.5) 我的模式很簡單:EF .NET 3.5中插入子行順序錯誤

Order (Id) 
Product (Id, OrderId) 
Category (Id, ProductId, NameA, NameB) 

我的代碼如下所示:

StoreEntity db = new StoreEntity(); 
Order order = GetOrder(1); 
Product product = new Product(); 
product.Categories.Add(new Category() { NameA = "1" }); 
product.Categories.Add(new Category() { NameA = "2" }); 
product.Categories.Add(new Category() { NameA = "3" }); 
product.Categories.Add(new Category() { NameB = "A" }); 
product.Categories.Add(new Category() { NameB = "B" }); 
product.Categories.Add(new Category() { NameB = "C" }); 
order.Products.Add(product); 
db.SaveChanges(); 

問題是,在數據庫類別是在錯誤的順序,即:

CategoryId,ProductId,NameA,NameB 
1,1,3,NULL 
2,1,2,NULL 
3,1,1,NULL 
4,1,NULL,C 
5,1,NULL,B 
6,1,NULL,A 

當我切換到.NE T 4行的順序是正確的。有沒有辦法在3.5中解決這個問題?

+2

關係數據庫是基於集合的系統。沒有順序的概念,除非特意強制執行一個例如ORDER BY子句。 – 2011-05-11 11:31:29

回答

1

據我所知沒有EF版本將確保項目將被插入在應用程序中創建相同的順序。如果它在EFv4中起作用,它很可能只是運氣,因爲我有許多EFv4中順序不同的例子。

+0

我注意到順序不會顛倒 - 它是隨機的 – jlp 2011-05-12 08:35:51