C# i可选择/不工作的位置

C# i可选择/不工作的位置,c#,asp.net-mvc,linq,nhibernate,C#,Asp.net Mvc,Linq,Nhibernate,我有两张桌子,一张是拳击手桌,另一张是潜在顾客桌。拳击手有一般的东西,如名字和出生日期等,还有拳击手 而Prospect(目前)只包含一个值,即boxerId。 如果一个拳击手是一个潜在的(有前途的拳击手),那么这个Id将出现在潜在的表中 这很好,但现在我想选择所有有前景的拳击手 public static IQueryable<Boxer> IsProspect(this IQueryable<Boxer> query) { //this

我有两张桌子,一张是拳击手桌,另一张是潜在顾客桌。拳击手有一般的东西,如名字和出生日期等,还有拳击手 而Prospect(目前)只包含一个值,即boxerId。 如果一个拳击手是一个潜在的(有前途的拳击手),那么这个Id将出现在潜在的表中

这很好,但现在我想选择所有有前景的拳击手

    public static IQueryable<Boxer> IsProspect(this IQueryable<Boxer> query)
    {
        //this does not filter down to only prospects!!!
        return query.Where(x => x.Prospect != null);
    }
公共静态IQueryable iProspect(此IQueryable查询)
{
//这并不是只过滤到潜在客户!!!
返回query.Where(x=>x.Prospect!=null);
}
这是我使用以下方法调用的函数:

var repository = GetRepository<Boxer>();
var boxers = repository.Query().IsProspect();
var repository=GetRepository();
var boxers=repository.Query().IsProspect();
我希望这能过滤掉我收集的所有拳击手,只剩下有前景的拳击手

奇怪的是,它没有过滤它,但如果我将鼠标悬停在我的boxers对象上,并在调试期间查看每个boxer,我可以正确地看到“IsProspect”是真是假

如果您只想要IsProspect为true的对象,请将其用作谓词:

public static IQueryable<Boxer> IsProspect(this IQueryable<Boxer> query)
{
    return query.Where(x => x.IsProspect);
}
公共静态IQueryable iProspect(此IQueryable查询)
{
返回query.Where(x=>x.IsProspect);
}

听起来您应该使用它。

重载
datacontext
并直接从
datacontext
对象调用该函数

public partial class myDataContext
{
       public IQueryable<Boxer> IsProspect()
       {
             return from tBoxer in myDataContext.tBoxer 
                    where tBoxer.IsProspect == true             
                    select tBoxer;
       }
}
公共部分类myDataContext
{
公共可查询iProspect()
{
从myDataContext.tBoxer中的tBoxer返回
其中tBoxer.IsProspect==true
选择tBoxer;
}
}

您可以像调用普通函数一样调用它,比如so
var db=new myDataConext()
var prospect=db.IsProspect()

无法处理错误/未返回值!{“无法解析属性:IsProspect of:BensBoxing.Domain.Boxer”}我真的不知道我在这里看到什么帮助?从您的问题描述来看,(概念上)您有一个
Boxer
域对象和一个
Prospect
派生域对象。也就是说,
Prospect
类派生自
Boxer
。我重新阅读了您的问题,意识到您使用的是NHibernate,而不是LINQ to Entities,因此我将链接改为指向相关NH文档。