Finde længste matchende sti (LINQ?)
Hej,Jeg har en metode med et argument hvor jeg ønsker at søge i en database og finde den længste sti der matcher argumentet. Et eksempel kunne være at databasen indeholder:
/Default.aspx
/SignIn.aspx
/Admin/
/Admin/Default.aspx
Hvis jeg kalder med argumentet '/Admin/Default.aspx' ønsker jeg selvfølgelig at få fat i den tilsvarende post. Hvis jeg søger på '/Admin/Something.aspx' ønsker jeg at få fat i posten med '/Admin/'. Jeg er i tvivl om hvorvidt det kan laves med LINQ. Har forsøgt med følgende, men det virker ikke.
public PathDto GetByRelativePath(String relativePath)
{
PathDto dto;
using (DataContext dc = GetDataContext())
{
var query =
from dtos in dc.GetTable<PathDto>()
where relativePath.Contains(dtos.RelativePath)
orderby dtos.RelativePath.Length descending
select dtos;
dto = query.Count().Equals(0) ? null : query.First();
}
return dto;
}
Jeg får blot
Only arguments that can be evaluated on the client are supported for the String.Contains method.
Nogen forslag?