Entity Fremework以及Fluentapi学习
2021-01-16 09:12
                         标签:create   source   ogr   main   fir   person   config   方便   字符串    一.Entity Framework的入门  我这里采用的方式是数据库自己建立  然后模型类自己建立 数据库上下文类自己建立的方式 目的在于弄懂原理 其他的数据库优先等方式这里就不写了  教程有很多。 首先创建控制台应用程序,接下来选择工具 NuGet包管理器,程序包管理控制台,默认项目选择自己要使用的项目,输入命令Install-Package EntityFramework 安装EntityFramework 。 a.安装成功后,在appconfig中添加数据库连接字符串: b.添加模型类Person:  [Table("T_Persons")] [Table("T_Persons")]用于告诉程序当前的类Person映射到数据库中的T_Persons表。因为现实中很有可能我们的数据库中的表名不一定和实体类名一致。 c.添加数据库上下文类 public class MyDbContext : DbContext         }         public DbSet 好了 到这里所以需要的准备工作已经完成  开始测试 class Program 测试已经添加成功 ef测试ok。 二.FluentApi的学习以及使用 b.配置数据库连接字符串 c.新建模型类Person  这个模型类区别于上面的用法是这个模型类是一个纯净的模型类 没有其他的特性修饰 public class Person d.新建文件夹EntityConfig(其他文件夹名字也可 不建也可 建文件夹只是为了方便统一管理)  文件夹下添加类PersonConfig继承EntityTypeConfiguration  public class PersonConfig:EntityTypeConfiguration 其实这一段代码等同于上面的[Table("T_Persons")]特性 e.新建数据库上下文类 public class MyContext : DbContext         public DbSet         protected override void OnModelCreating(DbModelBuilder modelBuilder)   ok  其他用法完全一致测试如下: class Program 二.Entity Framework 的增删改查 try                 #region 查询                 var item = ctx.Persons.FirstOrDefault(x => x.Name == "孔夫子");                 var item = ctx.Persons.SingleOrDefault(x => x.Name == "孔夫子");                 #endregion                 #region 删除                 #region 修改 Entity Fremework以及Fluentapi学习 标签:create   source   ogr   main   fir   person   config   方便   字符串    原文地址:https://www.cnblogs.com/yagamilight/p/12227744.html
    public class Person
    {
        public long Id { get; set; }
        public string Name { get; set; }
        public DateTime CreateDatetime { get; set; }
    }
    {
        public MyDbContext() : base("name=connStr")
        {
    }
    {
        static void Main(string[] args)
        {
            try
            {
                MyDbContext db = new MyDbContext();
                Person p = new Person
                {
                    Name = "五二狗",
                    CreateDatetime = DateTime.Now
                };
                db.Persons.Add(p);
                db.SaveChanges();
                Console.WriteLine("添加成功");
            }
            catch(Exception ex)
            {
                Console.WriteLine($"添加失败,{ex.Message}");
            }
            Console.ReadKey();
        }
    }
a.下载entityframework包并且安装
    {
        public long Id { get; set; }
        public string Name { get; set; }
        public DateTime CreateDatetime { get; set; }
    }
    {
        public PersonConfig()
        {
            this.ToTable("T_Persons");
        }
    }
    {
        public MyContext():base("name=connStr")
        {
        }
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Configurations.AddFromAssembly(Assembly.GetExecutingAssembly());
        }
    }
    {
        static void Main(string[] args)
        {
            MyContext db = new MyContext();
            Person p = new Person { Name = "张三", CreateDatetime = DateTime.Now };
            db.Persons.Add(p);
            db.SaveChanges();
            Console.WriteLine("添加成功");
        }
    }
            {
                TestDbContext ctx = new TestDbContext();
                #region 添加
                /*
                Person p1 = new Person { Name = "孔夫子", CreateDatetime = DateTime.Now };
                Console.WriteLine($"添加前Id是{p1.Id}");
                ctx.Persons.Add(p1);
                ctx.SaveChanges();
                Console.WriteLine("添加成功");
                Console.WriteLine($"添加成功后Id是{p1.Id}");
                */
                #endregion
                /*
                var list = ctx.Persons.Where(x => x.Name == "孔夫子");
                foreach (var item in list)
                {
                    Console.WriteLine(item);
                }
                Console.WriteLine(item);
                Console.WriteLine(item);
                */
                /*
                var item = (from p in ctx.Persons
                            where p.Name == "孔夫子"
                            select p).SingleOrDefault();
                var item1 = ctx.Persons.Where(x => x.Name == "孔夫子").SingleOrDefault();
                var item2 = ctx.Persons.SingleOrDefault(x => x.Name == "孔夫子");
                if(item==null)
                {
                    Console.WriteLine("已被删除"); 
                }
                else
                {
                    ctx.Persons.Remove(item);
                    ctx.SaveChanges();
                    Console.WriteLine("删除成功");
                }
                 */
                #endregion
                /*
                var item = ctx.Persons.FirstOrDefault(x => x.Name == "五二狗");
                if (item == null)
                {
                    Console.WriteLine("查无此人");
                }
                else
                {
                    item.Name = "六二狗";
                }
                ctx.SaveChanges();
                Console.WriteLine(item);
                */
                #endregion
            }
            catch (Exception ex)
            {
                Console.WriteLine("出现错误 "+ex.Message);
            }
            Console.ReadKey();
文章标题:Entity Fremework以及Fluentapi学习
文章链接:http://soscw.com/essay/42642.html