Dec 17, 2014
3 mins read
首先建立一個留言版的資料庫來當例子
DemoContext
namespace ConsoleApplication1.Models { using System.Data.Entity;public class DemoContext : DbContext { public DbSet<Topic> Topic { get; set; } public DbSet<Reply> Reply { get; set; } }
}
namespace ConsoleApplication1.Models { using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema;[Table("Topic")] public class Topic { [Key] public int TopicId { get; set; } public string TopicTitle { get; set; } public virtual ICollection<Reply> Reply { get; set; } }
}
namespace ConsoleApplication1.Models { using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema;[Table("Reply")] public class Reply { [Key] public int ReplyId { get; set; } [ForeignKey("Topic")] public int TopicId { get; set; } public string ReplyMessage { get; set; } public virtual Topic Topic { get; set; } }
}
namespace ConsoleApplication1 { using ConsoleApplication1.Models; using System.Collections.Generic; using System.Data.Entity; using System.Linq;class Program { static void Main(string[] args) { // 初始化資料庫 Database.SetInitializer(new DropCreateDatabaseAlways<DemoContext>()); using (DemoContext db = new DemoContext()) { db.Database.Initialize(false); } // 新增 using (DemoContext db = new DemoContext()) { db.Topic.Add(new Topic { TopicTitle = "a", Reply = new List<Reply> { new Reply { ReplyMessage = "a1" }, new Reply { ReplyMessage = "a2" }, new Reply { ReplyMessage = "a3" }, } }); db.SaveChanges(); } // 修改 using (DemoContext db = new DemoContext()) { var model = db.Topic.FirstOrDefault(); if (model != null) { model.TopicTitle = "modify"; db.SaveChanges(); } } // 查詢 using (DemoContext db = new DemoContext()) { var model1 = db.Topic.Find(1); var model2 = db.Topic.SingleOrDefault(); var model3 = db.Topic.FirstOrDefault(); } // 刪除 using (DemoContext db = new DemoContext()) { var model = new Topic { TopicId = 1 }; db.Entry(model).State = EntityState.Deleted; db.SaveChanges(); } } }
}
exec sp_reset_connection go exec sp_executesql N'INSERT [dbo].[Topic]([TopicTitle]) VALUES (@0) SELECT [TopicId] FROM [dbo].[Topic] WHERE @@ROWCOUNT > 0 AND [TopicId] = scope_identity()',N'@0 nvarchar(max) ',@0=N'a' go exec sp_executesql N'INSERT [dbo].[Reply]([TopicId], [ReplyMessage]) VALUES (@0, @1) SELECT [ReplyId] FROM [dbo].[Reply] WHERE @@ROWCOUNT > 0 AND [ReplyId] = scope_identity()',N'@0 int,@1 nvarchar(max) ',@0=1,@1=N'a1' go exec sp_executesql N'INSERT [dbo].[Reply]([TopicId], [ReplyMessage]) VALUES (@0, @1) SELECT [ReplyId] FROM [dbo].[Reply] WHERE @@ROWCOUNT > 0 AND [ReplyId] = scope_identity()',N'@0 int,@1 nvarchar(max) ',@0=1,@1=N'a2' go exec sp_executesql N'INSERT [dbo].[Reply]([TopicId], [ReplyMessage]) VALUES (@0, @1) SELECT [ReplyId] FROM [dbo].[Reply] WHERE @@ROWCOUNT > 0 AND [ReplyId] = scope_identity()',N'@0 int,@1 nvarchar(max) ',@0=1,@1=N'a3' go
exec sp_reset_connection go SELECT TOP (1) [c].[TopicId] AS [TopicId], [c].[TopicTitle] AS [TopicTitle] FROM [dbo].[Topic] AS [c] go exec sp_reset_connection go exec sp_executesql N'UPDATE [dbo].[Topic] SET [TopicTitle] = @0 WHERE ([TopicId] = @1) ',N'@0 nvarchar(max) ,@1 int',@0=N'modify',@1=1 go
exec sp_reset_connection go exec sp_executesql N'SELECT TOP (2) [Extent1].[TopicId] AS [TopicId], [Extent1].[TopicTitle] AS [TopicTitle] FROM [dbo].[Topic] AS [Extent1] WHERE [Extent1].[TopicId] = @p0',N'@p0 int',@p0=1 go exec sp_reset_connection go SELECT TOP (2) [c].[TopicId] AS [TopicId], [c].[TopicTitle] AS [TopicTitle] FROM [dbo].[Topic] AS [c] go exec sp_reset_connection go SELECT TOP (1) [c].[TopicId] AS [TopicId], [c].[TopicTitle] AS [TopicTitle] FROM [dbo].[Topic] AS [c] go
exec sp_reset_connection go exec sp_executesql N'DELETE [dbo].[Topic] WHERE ([TopicId] = @0)',N'@0 int',@0=1 go
Sharing is caring!