/// <summary>
/// 初始化系統分類
/// </summary>
/// <param name="context"></param>
public static void SeedSystemCategory(ApplicationDbContext context)
{
if (context.DT_SystemCategory.Any())
{
return;
}
context.DT_SystemCategory.AddRange(
new M_SystemCategory
{
Name = "優先級別",
PID = 0,
Order = 1
},
new M_SystemCategory
{
Name = "計量單位",
PID = 0,
Order = 2
},
new M_SystemCategory
{
Name = "失石率",
PID = 0,
Order = 3
},
new M_SystemCategory
{
Name = "機械型別",
PID = 0,
Order = 4
},
);
context.SaveChanges();
}
我用這個生成資料庫資料,但結果在資料庫生成時,順序是隨機的,有什么辦法讓它順序生成嗎?
uj5u.com熱心網友回復:
你說的資料庫是什么資料庫?你說”順序是隨機的“,這里的順序是什么?是你觀察到順序?還是查詢倒的順序?一般來說,關系資料庫(包括mssql,oracle,mysql等等)的數學基礎是居于集合理論。
而集合是沒有順序概念。資料的插入順序,洗掉順序對關系資料庫可以是無關緊要的。
select * from SystemCategory 回傳記錄順序是沒有定義,我們也不能依賴于它的表現。
關系資料庫查詢,只有在有order by條款下,順序才有意義,比如
select * from SystemCategory order by [Order] 就有明確的順序意義。
uj5u.com熱心網友回復:
如果你希望 自動排序, SortList<T> 如果資料庫那就 SELECT * FROM TB ORDER BY 欄位 ASC 或是 DESCuj5u.com熱心網友回復:
做過我這個EF初始化資料庫的人自然知道我的描述,所以在這我就不累述了。uj5u.com熱心網友回復:
context.DT_SystemCategory.AddRange(new M_SystemCategory
{
Name = "優先級別",
PID = 0,
Order = 1
},
new M_SystemCategory
{
Name = "計量單位",
PID = 0,
Order = 2
},
new M_SystemCategory
{
Name = "失石率",
PID = 0,
Order = 3
},
new M_SystemCategory
{
Name = "機械型別",
PID = 0,
Order = 4
},
);
這個方法,能不能改成類似 context.M_SystemCategory.add( new M_SystemCategory
{
Name = "優先級別",
PID = 0,
Order = 1
})
context.M_SystemCategory.add( new M_SystemCategory
{
Name = "計量單位",
PID = 0,
Order = 2
})
......到最后再savechange
如果還是不行,每add一次,就save一次
uj5u.com熱心網友回復:
把資料丟到 LIst<T> 然后呼叫背景關系 AddRange(List)不就行了,有時候有些東西不能省,省掉了BUG 就來了
uj5u.com熱心網友回復:
不支持.add方法,直接報錯
uj5u.com熱心網友回復:
這樣試試context.DT_SystemCategory.AddRange(
new M_SystemCategory
{
Name = "優先級別",
PID = 0,
Order = 1
})
context.DT_SystemCategory.AddRange( new M_SystemCategory
{
Name = "計量單位",
PID = 0,
Order = 2
})
context.SaveChanges();
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/127333.html
標籤:C#
上一篇:殺毒軟體
