首页 新闻 会员 周边

EF Core 对复杂关系的表进行删除操作。需要先Include。如果子表数据量比较大怎么办。

0
悬赏园豆:100 [已解决问题] 解决于 2019-12-27 09:27

现在有ArticleCate文章类别和Article文章两张表。
现在要删除文章类别的一条数据,需要先Include 类别的导航属性。
因为文章表数据量比较大 Include操作比较耗时。
有没有好一些的解决办法。

不想用直接手写sql来删除的方法。
Include的时候可不可以忽略一些字段不加载进来,因为文章表也就Content字段数据多一些。

从今天开始的主页 从今天开始 | 菜鸟二级 | 园豆:244
提问于:2019-12-26 18:24
< >
分享
最佳答案
0

可以试试 Entity Framework Core Plus

// using Z.EntityFramework.Plus; // Don't forget to include this.

// DELETE all users inactive for 2 years
var date = DateTime.Now.AddYears(-2);
ctx.Users.Where(x => x.LastLoginDate < date)
         .Delete();

// DELETE using a BatchSize
var date = DateTime.Now.AddYears(-2);
ctx.Users.Where(x => x.LastLoginDate < date)
         .Delete(x => x.BatchSize = 1000);
收获园豆:80
dudu | 高人七级 |园豆:30994 | 2019-12-26 21:55

可以 解决了俺的问题

从今天开始 | 园豆:244 (菜鸟二级) | 2019-12-27 09:36
其他回答(1)
0

1 排除字段:我记得EF 查询时时有.ignore的方法的
2 加载部分字段:找了一下

 using (var context = new EntityContext())
     {
        var result = from s in context.Users
            orderby s.ID
             select new {s.name,s.years};
    };

https://ithelp.ithome.com.tw/questions/10192142

  dbEntities db = new dbEntities();
        var list = db.news.Select(c => new { c.title, c.times }).ToList();/

https://www.cnblogs.com/webapi/p/10449319.html

收获园豆:20
猝不及防 | 园豆:2781 (老鸟四级) | 2019-12-27 08:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册