Я мог бы использовать некоторые рекомендации о том, как вручную обновлять версии Breeze и его зависимости. Я не верю, что могу просто обновить с помощью диспетчера пакетов NuGet.
Я разрабатывал свое одностраничное приложение с помощью Breeze, Knockout, WebAPI и так далее. Я использую Breeze версии 0.61 и хочу перейти на последнюю версию, чтобы использовать ODataActionFilters и не анализировать Request.QueryString для извлечения параметров и фильтров. Например, когда я звоню
var getMachineById(machineId) {
var query = EntityQuery
.from("Machines")
.where("machineId", "eq", machineId);
return manager.executeQuery(query)
.then(function (data) {
do_something_with(data.results);
})
.fail(queryFailed);
}
У Breeze должен быть способ справиться с этим за меня, поэтому я могу просто сделать что-то вроде этого:
[AcceptVerbs("GET")]
public IQueryable<Machine> Machines()
{
return _contextProvider.Context.Machines;
}
вместо
// eg "?$filter=machineId%20eq%205"
[AcceptVerbs("GET")]
public IQueryable<Machine> Machines()
{
IQueryable<Machine> x = _contextProvider.Context.Machines;
List<ODataQueryString> list = null;
string qs = Request.RequestUri.Query.ToString(CultureInfo.CurrentCulture);
list = new ODataQueryStringParser(qs).Parse();
if (list != null)
{
int machineId = int.Parse(list[0].Value); // covert string to an int
x = x.Where(o => o.MachineId == machineId);
}
return x;
}
Я заметил, что оформление атрибута в контроллере изменилось в образцах. Мне тоже нужно менять свой?
namespace PilotPlantBreeze.Controllers { [JsonFormatter, ODataActionFilter] public class BreezeController : ApiController { readonly EFContextProvider<PilotPlantDbContext> _contextProvider = new EFContextProvider<PilotPlantDbContext>(); [AcceptVerbs("GET")] public string Metadata() { return _contextProvider.Metadata(); } [AcceptVerbs("POST")] public SaveResult SaveChanges(JObject saveBundle) { return _contextProvider.SaveChanges(saveBundle); } ... etc. } }
У меня есть сторонние библиотеки в папке ~\Scripts\lib. Если я использую диспетчер пакетов NuGet для обновления, он помещает все замены в ~\Scripts. Как переместить файлы в папку lib, не нарушая систему управления версиями Team Foundation Server (Azure)?
Совместимы ли версии времени выполнения Antlr3.Runtime.dll, Breeze.WebApi.dll, Irony.dll, Newtonsoft.Json.dll, WebActivator.dll и, возможно, WebGrease.dll между версиями. Бьюсь об заклад, нет. Есть ли что-то, что я должен изменить в Visual Studio?
Могу ли я просто изменить записи версии из папки пакета в packages.config?
Спасибо.