我的模型中有一个名为Customers的表,其中包含字段IsActive。每当我对客户运行查询时,只应检索活动客户。我可以在每个查询中包含过滤器,但这看起来不太好。我希望能够在Object Context杠杆上覆盖Customers属性,但我不确定这是否可行。任何帮助将非常感谢!感谢
答案 0 :(得分:5)
虽然是迟到的反应,但我会把它放在这里,这样可以帮助别人。
您还可以在edmx文件中为实体设置条件。选择您的实体并转到Goto Mapping Details并创建一个新条件。
答案 1 :(得分:3)
也许您可以声明新属性并使用它:
public partial class MyEntities
{
public ObjectQuery<User> ActiveCustomers
{
get
{
return Customers.Where(c => c.IsActive);
}
}
}
答案 2 :(得分:0)
我不知道为什么这对你来说是个问题。您可以在一个函数中放入一个查询:
IEnumerable<Customers> GetActiveCustomers()
{
var activeCustomers =
from cust in db.Customers
where cust.IsActive == true
select cust;
return activeCustomers;
}
每次你喜欢的时候都打电话。您甚至可以将活跃客户放在某个私有列表中,甚至更好的ObservableCollection。然后,您可以再次查询结果:
var myCustomers =
from cust in GetActiveCustomers()
where cust.CustomerName == "John"
select cust;
就是这样。
答案 3 :(得分:-5)
您需要做的就是检索所有客户,无论他们是否处于活动状态,然后使用
foreach(Customer c in Results)
{
if(c.IsActive)
listofactivecustomers.Add(c);
}