1
我是EF新手,在看了教程之後,好像我可以保存數據就好,但不知道要檢索它的代碼。我的類看起來像用c#實體框架,檢索保存的對象
public class Item
{
[Key]
public int index { get; set; }
public string name;
public List<string> type;
public List<string> def;
public HashSet<string> syns;
public HashSet<string> generator_list = new HashSet<string>();
public List<Point> related_items2 = new List<Point>();
}
而EF代碼看起來像
using (var ctx = new Context())
{
foreach (Item block in items)
{
ctx.items_db.Add(block);
}
ctx.SaveChanges();
var test = from b in ctx.items_db
orderby b.index
select b;
}
我有9000分的情況下,我只是想將它們保存在一個數據庫中,然後將它們恢復成List<Item>
與所有的實例。但我認爲我沒有用var test
這樣做,因爲那看起來不是List<Item>
,我似乎無法在using
語句塊之外訪問它。
我這樣做的唯一原因是我只想保存related_items2屬性(所以我不必在每次重新啓動時重新生成它),因爲它有9000個元素,它需要一個同時(20分鐘)生成9000個實例。我試着用protobuff但仍然佔用200MB和我得到的錯誤,當我嘗試讀取數據回。
多虧了這一點邊,似乎工作!但我認爲我仍然在做錯事,因爲我期待的是9000個元素的列表,但是我得到了18000個元素,除了索引外,所有的字段都是空白的?我查找刪除表,以便重新開始並排除故障,但需要表名,但我不知道我的情況如何? – thatandrey 2014-09-12 19:47:07
@ user3408097我認爲你的表從開始不是空的,或者你運行這個代碼兩次,因此得到18000個元素的列表 – 2014-09-12 19:52:54
你知道我該如何刪除表嗎?此代碼給我一個錯誤'ctx.Database.ExecuteSqlCommand(「TRUNCATE TABLE [items_db]」);' – thatandrey 2014-09-12 19:58:03