Entity Framework(三)---FluentAPI和增删查改

本文介绍了Entity Framework Core中使用Fluent API进行模型配置的方法,并提供了实体增删查改的基本示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、FluentAPI:

       1、基本配置:   

namespace ConsoleApp14.ModelConfig
{
   public class PersonConfig: EntityTypeConfiguration<Person>
    {
        //继承自EntityTypeConfiguration,并将Person传进来
        public PersonConfig()
        {
            this.ToTable("T_Persons");
        }     
    }
}
   public class TestDbContext:DbContext
    {
        public TestDbContext():base("name=connstr")//name=connstr 表示使用连接字符串中名字为connstr的数据库
        {

        }
        public DbSet<Person> Persons { get; set; }


        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            //用法一:从本程序集中加载所有继承自EntityTypeConfiguration类的配置
            modelBuilder.Configurations.AddFromAssembly(
                Assembly.GetExecutingAssembly());
//用法二: 从指定的程序集中加载所有的继承自EntityTypeConfiguration类的配置 // modelBuilder.Configurations.AddFromAssembly( // Assembly.Load("ModelConfig")); //用法三: // modelBuilder.Entity<Person>().ToTable("T_Person");
//用法四: // modelBuilder.Configurations.Add(new PersonConfig()); } }

二、EF增删查改:

        获取Dbset除了可以ctx.Persons之外,还可以ctx.Set<Person>()

      1、增加:ctx.Persons.Add(p1) ;  ctx.SaveChange();

      2、删除:先查询出要删除的数据,然后Remove。这种方式问题最少,虽然性能低,但是删除操作一般不频繁,不用考虑性能。

            using (TestDbContext ctx = new TestDbContext())
            {
               var ps= ctx.Persons.Where(p => p.Id ==3).SingleOrDefault();

                if(ps==null)
                {
                    Console.WriteLine("没有ID为3的人");
                }
                else
                {
                    ctx.Persons.Remove(ps); //单个删除
                }
             }
               var ps= ctx.Persons.Where(p => p.Id >3);

                ctx.Persons.RemoveRange(ps); //批量删除

          3、改:先查询出来,然后修改数据,最后SaveChange()

          4、查询:因为Dbset实现了IQueryable 接口,而IQueryable 继承了IEnumerable接口,所以可以使用Linq、Lambda操作。

                    EF调用Skip之前必须调用OrderBy,不然会报错

转载于:https://www.cnblogs.com/fuyouchen/p/9385753.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值