Entity Framework Core の global filter

● Entity Framework Core の global filter を適用させる

DBテーブル「Memo」に対して必ず「WHERE isDeleted= 0」条件を加えます。

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Memo>().HasQueryFilter(s => s.isDeleted== 0 );  // WHERE isDeleted= 0 に限定する
        }

● 記述例 Data\MyContext.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using EFCoreFilterApp1.Models;

namespace EFCoreFilterApp1.Data
{
    public class MyContext : DbContext
    {
        public MyContext(DbContextOptions options) : base(options)
        {

        }
        public DbSet<Memo> Memo { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Memo>().HasQueryFilter(s => s.MYID == 2 );  // WHERE MYID = 2 に限定する
        }
    }
}

関連エントリー

No.1780
06/10 17:36

edit

EntityFrameworkCore