1.实体与表的映射
创建一个表,表的的名称是“Entities”,表有两列“Label”和“Type”,类型分别为int64和int32。
[Table("Entities")] public class EntityDef { [Key] [Column("Label")] public Int64 Label { get; set; } [Column("Type")] public Int32 Type { get; set; } }
2.DbContext的实现
myContext继承DbContext,创建数据库,并提供对表的操作。“NpgsqlContext”是连接数据库的字符串。
class myContext : DbContext { public DbSet<EntityDef> myEntity { get; set; } public myContext() : base("NpgsqlContext") { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.HasDefaultSchema("public"); base.OnModelCreating(modelBuilder); } }
3.表的增删改查
对表的增删改查以SaveChanges()将操作保存到数据源,并重置对象的上下文。
class Program { static void Main(string[] args) { using (var context = new myContext()) { //增 context.myEntity.Add(new EntityDef { Type = 110 }); context.myEntity.Add(new EntityDef { Type = 120 }); context.SaveChanges(); //删 var itemToRemove = context.myEntity.FirstOrDefault(); if (itemToRemove != null) { context.myEntity.Remove(itemToRemove); context.SaveChanges(); } //改 var itemToModify = context.myEntity.FirstOrDefault(); if (itemToModify != null) { itemToModify.Type = 140; context.SaveChanges(); } //查 var itemToQuery = context.myEntity.FirstOrDefault(); } } }