Ton*_*Nam 3 c# sql-server entity-framework-6
我的数据库上有一个表规则.我插入如下规则:
Rule[] rulesToInsert = // some array of rules to insert
using(var db = new MyEntities())
{
foreach(var rule in rulesToInsert)
db.Rules.Add(rule);
db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
当我稍后检索我刚刚添加的规则时,我注意到它们的顺序不同.按照我添加的顺序检索它们的最佳方法是什么?我db.SaveChanges()
每次添加新规则时都应该打电话吗?或者我应该添加一个名为SortOrder的新列?为什么没有按照我添加的顺序添加项目?
id是一个guid(字符串),因为一个规则可以有其他规则.换句话说,我正在创建一个树结构.(规则表有自己的外键).当我使用主键作为整数并且它自动增量时它崩溃了,所以我只使用了一个guid.我想我会添加一个名为排序顺序的单独列.
表没有排序顺序(不保证新行添加到结尾或任何其他位置).以任何特定顺序检索行的唯一安全方法是使用查询Order by
.
所以是的,您需要添加一SortOrder
列.(可以将其设置为identity
列.)