Я пытаюсь получить данные в автозаполнении от JsonResult Action Method в моем контроллере. Я не могу запрашивать данные с LINQ, я использую код, пожалуйста, помогите мне.Не удается получить данные с помощью LINQ в MVC
Действие Метод
public class VehicleController : Controller
{
private readonly IService<Vehicle> _service;
public VehicleController(IService<Vehicle> service)
{
_service = service;
}
public JsonResult AutoComplete(string term)
{
var vehicle = _service.GetAll().Select(c => new { Name = c.Name });
return Json(vehicle, JsonRequestBehavior.AllowGet);
}
}
EntityRepository
public class EntityRepository<TEntity> : IRepository<TEntity> where TEntity : BaseEntity
{
private readonly IEntitiesContext _context;
private readonly IDbSet<TEntity> _dbEntitySet;
private bool _disposed;
public EntityRepository(IEntitiesContext context)
{
_context = context;
_dbEntitySet = _context.Set<TEntity>();
}
public List<TEntity> GetAll()
{
return _dbEntitySet.ToList();
}
}
IRepository
public interface IRepository<TEntity> : IDisposable where TEntity : BaseEntity
{
List<TEntity> GetAll();
}
Сервис
public class Service<TEntity> : IService<TEntity> where TEntity : BaseEntity
{
public IUnitOfWork UnitOfWork { get; private set; }
private readonly IRepository<TEntity> _repository;
private bool _disposed;
public Service(IUnitOfWork unitOfWork)
{
UnitOfWork = unitOfWork;
_repository = UnitOfWork.Repository<TEntity>();
}
public List<TEntity> GetAll()
{
return _repository.GetAll();
}
}
IService
public interface IService<TEntity> : IService where TEntity : BaseEntity
{
List<TEntity> GetAll();
}
Действие Методы возвращают полный список данных, но когда я применить любой фильтр не будет работать и не возвращает значений - например, я попробовал это, и это возвращает нуль:
var vehicle = _service.GetAll().Where(c => c.Name.StartsWith(term)).Select(c => new { Name = c.Name });
Извините, но где вы передаете 'term' параметра от действия к способу обслуживания? – Kamo
@ Kamo - это автозаполнение, термин исходит из пользовательского интерфейса и в обслуживании, как я могу пройти? – Anony
Все в порядке, теперь я вижу, как вы его использовали :) Вы уверены, что 'term' соответствует любому результату в вашей БД? Помните, что это сравнение чувствительно к регистру (поэтому «m» не соответствует «M») – Kamo