Entity framework 筛选上下文级别上的所有表
我使用的是EF代码优先方法。这是我的上下文文件Entity framework 筛选上下文级别上的所有表,entity-framework,Entity Framework,我使用的是EF代码优先方法。这是我的上下文文件 public class MyContext : DbContext { public DbSet<Contact> Contacts { get; set; } public DbSet<Contact_phone> Contact_phones{ get; set; } } 公共类MyContext:DbContext { 公共数据库集联系人{get;set;} 公共数
public class MyContext : DbContext
{
public DbSet<Contact> Contacts { get; set; }
public DbSet<Contact_phone> Contact_phones{ get; set; }
}
公共类MyContext:DbContext
{
公共数据库集联系人{get;set;}
公共数据库集联系人{get;set;}
}
我想在我的上下文文件中添加基于日期的过滤器,这样当我获取任何表的数据时,我只获取该特定日期范围的数据。
请建议。免责声明:我是项目的所有者 库中有一个查询过滤器,它正好执行此场景 在引擎盖下,它使用了史蒂夫·格伦建议的拦截器(用于EF6) 维基: 全局筛选
startDate = new DateTime(2015, 1, 1);
QueryFilterManager.Filter<Contacts>(q => q.Where(x => x.CreatedDate > startDate));
// SELECT * FROM Contacts WHERE CreatedDate > '2015-01-01'
var context = ctx.Contacts.ToList();
startDate=新日期时间(2015,1,1);
过滤器(q=>q.Where(x=>x.CreatedDate>startDate));
//从CreatedDate>'2015-01-01'中的联系人中选择*
var context=ctx.Contacts.ToList();
按实例筛选
startDate = new DateTime(2015, 1, 1);
var ctx = new MyContext();
ctx.Filter<Contacts>(q => q.Where(x => x.CreatedDate > startDate));
// SELECT * FROM Contacts WHERE CreatedDate > '2015-01-01'
var context = ctx.Contacts.ToList();
startDate=新日期时间(2015,1,1);
var ctx=新的MyContext();
过滤(q=>q.Where(x=>x.CreatedDate>startDate));
//从CreatedDate>'2015-01-01'中的联系人中选择*
var context=ctx.Contacts.ToList();
免责声明:我是项目的所有者
库中有一个查询过滤器,它正好执行此场景
在引擎盖下,它使用了史蒂夫·格伦建议的拦截器(用于EF6)
维基:
全局筛选
startDate = new DateTime(2015, 1, 1);
QueryFilterManager.Filter<Contacts>(q => q.Where(x => x.CreatedDate > startDate));
// SELECT * FROM Contacts WHERE CreatedDate > '2015-01-01'
var context = ctx.Contacts.ToList();
startDate=新日期时间(2015,1,1);
过滤器(q=>q.Where(x=>x.CreatedDate>startDate));
//从CreatedDate>'2015-01-01'中的联系人中选择*
var context=ctx.Contacts.ToList();
按实例筛选
startDate = new DateTime(2015, 1, 1);
var ctx = new MyContext();
ctx.Filter<Contacts>(q => q.Where(x => x.CreatedDate > startDate));
// SELECT * FROM Contacts WHERE CreatedDate > '2015-01-01'
var context = ctx.Contacts.ToList();
startDate=新日期时间(2015,1,1);
var ctx=新的MyContext();
过滤(q=>q.Where(x=>x.CreatedDate>startDate));
//从CreatedDate>'2015-01-01'中的联系人中选择*
var context=ctx.Contacts.ToList();
这有点奇怪。你想在哪里约会?我想你不是在说相对容易地过滤你的联系人或联系人电话,而是想为所有表提供上下文范围的内容?请参阅@CodeNotFound,就像我只想要当年的数据一样,所以我只为今年设置日期,并且在我在应用程序级别访问的所有点上,它只为我提供今年的数据。@SteveGreene是的,所有表都需要它,所以你必须像@SteveGreene建议的那样寻找拦截器。这有点奇怪。你想在哪里约会?我想你不是在说相对容易地过滤你的联系人或联系人电话,而是想为所有表提供上下文范围的内容?请参阅@CodeNotFound,就像我只需要当年的数据一样,因此我只为今年设置日期,并且在我访问应用程序级别时,它提供的所有数据都是今年的数据。@SteveGreene是的,我需要所有表都使用它,所以您必须按照@SteveGreene的建议查找拦截器。您好,您是否可以更新以显示这在全球所有实体(例如tenantID)中是如何实现的?您好,您是否可以更新以显示这在全球所有实体(例如tenantID)中是如何实现的?