Dec 17, 2014
5 mins read
DbSet有一個Local,是用來存放從資料庫中取得的資料
namespace ConsoleApplication1 { using ConsoleApplication1.Models; using System; using System.Data.Entity;class Program { static void Main(string[] args) { // 初始化資料庫 Database.SetInitializer(new MyInit()); using (DemoContext db = new DemoContext()) { db.Database.Initialize(false); Console.WriteLine(db.Topic.Local.Count); db.Topic.Load(); Console.WriteLine(db.Topic.Local.Count); } } }
}
namespace ConsoleApplication1 { using ConsoleApplication1.Models; using System; using System.Data.Entity;class Program { static void Main(string[] args) { // 初始化資料庫 Database.SetInitializer(new MyInit()); using (DemoContext db = new DemoContext()) { db.Database.Initialize(false); db.Topic.Local.CollectionChanged += (s, a) => { if (a.NewItems != null) { foreach (Topic item in a.NewItems) { Console.WriteLine("Added:" + item.TopicTitle); } } if (a.OldItems != null) { foreach (Topic item in a.OldItems) { Console.WriteLine("Removed:" + item.TopicTitle); } } }; Topic topic = new Topic { TopicTitle = "abc" }; db.Topic.Add(topic); db.Topic.Remove(topic); } } }
}
namespace ConsoleApplication1 { using ConsoleApplication1.Models; using System; using System.Data.Entity;class Program { static void Main(string[] args) { // 初始化資料庫 Database.SetInitializer(new MyInit()); using (DemoContext db = new DemoContext()) { db.Database.Initialize(false); // 建立一個新實體,初始狀態會是Detached Topic topic = new Topic() { TopicTitle = "abc" }; Console.WriteLine("{0}, {1}", db.Topic.Local.Count, db.Entry(topic).State); // 呼叫Attach可以把資料附加進Local集合中,狀態會是UnChanged db.Topic.Attach(topic); Console.WriteLine("{0}, {1}", db.Topic.Local.Count, db.Entry(topic).State); // 把實體加入DbSet後,狀態會是Added db.Topic.Add(topic); Console.WriteLine("{0}, {1}", db.Topic.Local.Count, db.Entry(topic).State); // 呼叫SaveChanges後,狀態會是UnChanged db.SaveChanges(); Console.WriteLine("{0}, {1}", db.Topic.Local.Count, db.Entry(topic).State); // 異動資料後,狀態會是Modified topic.TopicTitle = "123"; Console.WriteLine("{0}, {1}", db.Topic.Local.Count, db.Entry(topic).State); // 把實體從DbSet移除後,狀態會是Deleted db.Topic.Remove(topic); Console.WriteLine("{0}, {1}", db.Topic.Local.Count, db.Entry(topic).State); } } }
}
namespace ConsoleApplication1 { using ConsoleApplication1.Models; using System; using System.Data.Entity;class Program { static void Main(string[] args) { // 初始化資料庫 Database.SetInitializer(new MyInit()); using (DemoContext db = new DemoContext()) { db.Database.Initialize(false); Topic topic = db.Topic.Find(1); topic.TopicTitle = "123"; db.Database.ExecuteSqlCommand("UPDATE Topic SET TopicTitle='456' WHERE TopicID=1"); Console.WriteLine("CurrentValue:{0}", db.Entry(topic).CurrentValues.GetValue<string>("TopicTitle")); Console.WriteLine("OriginalValue:{0}", db.Entry(topic).OriginalValues.GetValue<string>("TopicTitle")); Console.WriteLine("DatabaseValue:{0}", db.Entry(topic).GetDatabaseValues().GetValue<string>("TopicTitle")); } } }
}
namespace ConsoleApplication1 { using ConsoleApplication1.Models; using System; using System.Data.Entity;class Program { static void Main(string[] args) { // 初始化資料庫 Database.SetInitializer(new MyInit()); using (DemoContext db = new DemoContext()) { db.Database.Initialize(false); Console.WriteLine(db.Topic.Local.Count); db.Topic.AsNoTracking().Load(); Console.WriteLine(db.Topic.Local.Count); } } }
}
Sharing is caring!