.NET 3.5中的EF以错误的顺序插入子行

时间:2011-05-11 11:11:02

标签: .net entity-framework .net-3.5

我在ASP.NET应用程序中使用Entity Framework(.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

当我切换到.NET 4时,行顺序正确。有没有办法在3.5中解决这个问题?

1 个答案:

答案 0 :(得分:1)

据我所知,EF版本不会确保项目的插入顺序与应用程序中创建的顺序相同。如果它在EFv4中有效,那很可能只是运气,因为我有很多例子,其中EFv4的顺序也不同。