У меня есть метод WCF, где я соединяю между двумя таблицами. Теперь я столкнулся с этой ошибкой:NotSupportedException был пойман
LINQ to Entities does not recognize the method 'Int32 Parse(System.String)' method, and this method cannot be translated into a store expression.
Когда я смотрел с точкой останова мои переменный я создаю в моей операции контракте показывает undefined
При работе через кодирование.
Операция контракта
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "getRepByCompA/{CompanyID}")]
List<Represetative> GetRepByCompA(string CompanyID);
Сервис Метод
public List<Represetative> GetRepByCompA(string CompanyID)
{
try
{
TruckDb db = new TruckDb();
List<Represetative> RepList = new List<Represetative>();
var join = from t in db.Companies
join p in db.Represetatives on t.Id equals p.CompanyId
where t.Id == int.Parse(CompanyID) *//<-Shows CompanyID is Undefined-*
select new { t, p };
foreach (var item in join)
{
Represetative ph = new Represetative();
//REPRESETATIVES
ph.Name = item.p.Name;
ph.Email = item.p.Email;
ph.ContactNumber = item.p.ContactNumber;
ph.Quotes = item.p.Quotes;
ph.CompanyId = item.p.Id;
//REPRESETATIVES
//COMPANY
ph.Id = item.t.Id;
//COMPANY
RepList.Add(ph);
}
return RepList;
}
catch (Exception)
{
throw;
}
}
Когда я попытался изменить CompanyID к междунар я получаю эту ошибку при запуске моей службы:
Operation 'GetRepByCompA' in contract 'ITruckService' has a path variable named 'CompanyID' which does not have type 'string'. ÿVariables for UriTemplate path segments must have type 'string'.
Не можете ли вы передать CompanyID как целое число вместо строки? – dimitarie
Нет, это то, что я упомянул внизу, он говорит, что это должно быть строковое значение? @dimitarie –
Преобразование id в 'int' извне:' var id = int.Parse (CompanyID); var join = from ... где где t.Id == id ...; ' – Dennis