我有一个表Salary
,我有一个可以为空的外键programmerId
,我不知道如何编写我的查询。
我收到此错误
'Domain.Abstract.Repository.IProgrammerRepository'不包含'Where'的定义,也没有扩展方法'Where'可以找到接受类型'Cbc.Domain.Abstract.Repository.IProgrammerRepository'的第一个参数(是你错过了使用指令或程序集引用?)
我的代码:
if(entity.programmerId != null)
{
var programmer= repositoryContainer
.ProgrammerRepository
.Where(entity.programmerId !=null && id == entity.programmerId)
.FirstOrDefault();
}
任何帮助?
更新
public partial class Salary : IEntity<long>
{
public long Id { get; set; }
public int Мonth { get; set; }
public int Year { get; set; }
public long? ProgrammerId {get; set}
public virtual Programmer {get;Set}
}
public partial class Programmer: IEntity<long>
{
public long Id { get; set; }
}
我需要选择id == salary.ProgrammerId
答案 0 :(得分:1)
您是否尝试过使用正确的lamba表达式? 它应该是这样的:
var programmer = repositoryContainer
.ProgrammerRepository
.Where(p => p.programmerId.HasValue && p.programmerId == id)
.FirstOrDefault();
Where()是来自System.Linq命名空间的扩展方法,它期望lambda表达式而不是普通表达式。这就是为什么你会收到这个错误。