我正在使用实体框架在C#中工作,我正在尝试过滤联系人查询以获取具有相同ID的所有联系人。我可以获得所有Contacts
,但我在使用Where
进行过滤时出现问题。我知道有些事情是错的,但我无法确定它,任何帮助都会受到赞赏。
请参阅以下相关代码:
public IEnumerable<model.Contact> Execute(GetContactById parameters)
{
IEnumerable<model.Contact> ContactsById = null;
DbRetryHandler.RetryHandler(delegate(DeviceModelContext retryContext)
{
ContactsById = retryContext.Contact
.Where(c => c.Id.equals(parameters.Id))
.Select(c => new model.Contact
{
// unrelated code
});
});
return ContactsById;
}
答案 0 :(得分:3)
提供程序在识别无法转换为SQL的表达式时遇到问题。尝试简化表达式,以便更容易地将其转换为SQL。
public IEnumerable<model.Contact> Execute(GetContactById parameters)
{
IEnumerable<model.Contact> ContactsById = null;
DbRetryHandler.RetryHandler(delegate(DeviceModelContext retryContext)
{
var parametersId = parameters.Id; // <-- store id in variable
camerasByDeviceId = retryContext.Contact
.Where(c => c.Id == parametersId) // <-- use == instead of Equals
.Select(c => new model.Camera
{
// unrelated code
});
});
return ContactsById;
}