首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq to SQL:使用int?作为查询中的参数

Linq to SQL:使用int?作为查询中的参数
EN

Stack Overflow用户
提问于 2010-01-14 01:00:30
回答 3查看 283关注 0票数 1

所以我有一个类似于下面这样的查询:

代码语言:javascript
复制
var clams = from clam in Clams
            where clam.ClamTypeID == 143 &&
                  clam.ParentClamID == null
            select clam;

不会太疯狂,返回我需要的结果。但是,当我在一个函数中使用它时,我会将可能的空值作为int传递进来吗?我开始遇到一个问题。下面是我的函数:

代码语言:javascript
复制
public IQueryable<Clam> getAllClams(int clamTypeID, int? parentClamID)
{
     return from clam in Clams
            where clam.ClamTypeID == clamTypeID &&
                  clam.ParentClamID == parentClamID
            select clam;
}

此函数不返回任何内容-我检查了参数以确保它们是正确的和足够确定的,parentClamID ==为null,仍然没有结果。如果我将clam.ParentClamID == parentClamID更改为clam.ParentClamID == null,它会起作用,所以我假设我使用的是int?incorrectly...any idea是我在这里做错了什么吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-14 01:08:54

我以前就遇到过这个问题。我发现的变通方法是:

代码语言:javascript
复制
public IQueryable<Clam> getAllClams(int clamTypeID, int? parentClamID)
{
     return from clam in Clams
            where clam.ClamTypeID == clamTypeID &&
                  object.Equals(clam.ParentClamID, parentClamID)
            select clam;
}
票数 1
EN

Stack Overflow用户

发布于 2010-01-14 01:15:41

代码语言:javascript
复制
public IQueryable<Clam> getAllClams(int clamTypeID, int? parentClamID)
{
     return from clam in Clams
            where clam.ClamTypeID == clamTypeID &&
                  clam.ParentClamID == parentClamID.HasValue ? parentClamID.Value : null 
            select clam;
}
票数 2
EN

Stack Overflow用户

发布于 2010-01-14 01:09:27

试试这个:

代码语言:javascript
复制
public IQueryable<Clam> getAllClams(int clamTypeID, int? parentClamID)
{
     var result = from clam in Clams where clam.ClamTypeID == clamTypeID select clam;

      if(parentClamID.HasValue) result = result.Where(c => c.ParentClamID == parentClamID);
      else result = result.Where(c => c.ParentClamID == null);

      return from clam in result select clam;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2058616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档