저는 breeze.js에 다소 익숙하며 힘든 아이디어가 있었지만 여기에 조금 붙어 있습니다. 내 바람 컨트롤러가 저를 저장하려고 할 때마다 "시퀀스에 일치하는 요소가 없습니다"라고 표시됩니다. 부트 스트랩 모달에 바인딩하기 위해 녹아웃을 사용하고 있으며 saveChanges가 실행될 때까지 모든 것이 작동하는 것으로 보이며 그 오류를 throw합니다. json은 정확하고 (모든 변경 사항을 포함하고있는 것 같습니다), 나는 여기에 달라 붙었습니다. 당신이 몇 가지 코드를 필요로하는 경우 나saveChanges - 시퀀스에 일치하는 요소가 없습니다.
편집 코드를 추가 1월 사전에
감사를 알려 주시기 바랍니다 :
내가 저장하려고
[BreezeController]
public class BreezeEntityController : ApiController
{
readonly BreezeEntityRepo repository = new BreezeEntityRepo();
[HttpGet]
public IQueryable GetEtCustomers()
{
if (User.Identity.IsAuthenticated)
{
Int32 idUser = WebSecurity.GetUserId(User.Identity.Name);
Int32 idSstuser = Helpers.Extensions.GetSstCustomerId(User.Identity.Name);
return repository.Customers.Cast<EtCustomer>().Where(o => (o.IdMain.HasValue && o.IdMain == idSstuser) || o.IdUser == idUser).AsQueryable();
}
return null;
}
[HttpGet]
public string Metadata()
{
return repository.Metadata();
}
[HttpPost]
public SaveResult SaveChanges(JObject saveBundle)
{
return repository.SaveChanges(saveBundle);
}
}
json으로 컨트롤러 :
{
"entities": [{
"IdSstCustomer": 12520,
"IdAddressType": 40,
"IdTitle": 10,
"Lastname": "Lieferadresse",
"Firstname": "Dummy",
"Title": null,
"Name": "Maximilian Jan",
"Email": "[email protected]",
"NLstop": null,
"Phone": null,
"Company": null,
"UID": "",
"Address": "Teststr 1",
"Address2": null,
"City": "Wien",
"ZipCode": "1110",
"State": null,
"Country": "AT",
"CreateDate": "2013-02-25T12:06:00Z",
"CreateUser": 22,
"UpdateDate": null,
"UpdateUser": null,
"ApplicationId": null,
"UserId": null,
"IdMain": 10080,
"IdUser": null,
"entityAspect": {
"entityTypeName": "EtCustomer:#interfaceLibrary",
"defaultResourceName": "tbl_sst_Customer",
"entityState": "Modified",
"originalValuesMap": {
"Firstname": "Jan",
"Lastname": "Maximilian Lieferadresse",
"Address": "Wienerstraße 53a",
"ZipCode": "4020",
"City": "Linz",
"Email": "[email protected]"
},
"autoGeneratedKey": {
"propertyName": "IdSstCustomer",
"autoGeneratedKeyType": "Identity"
}
}
}],
"saveOptions": {}
}
또한 내 엔티티 모델은 외부 DLL 내에 있습니다. 그게 이유가 될 수 있니?
public class BreezeEntityRepo
{
readonly EFContextProvider<FaEntities> _contextProvider =
new EFContextProvider<FaEntities>();
public IQueryable<EtCustomer> Customers
{
get
{
return _contextProvider.Context.tbl_sst_Customer;
}
}
public string Metadata()
{
return _contextProvider.Metadata();
}
public SaveResult SaveChanges(JObject saveBundle)
{
return _contextProvider.SaveChanges(saveBundle);
}
}
}
뷰 모델이
var vm = {
people: ko.observableArray([]),
hide: ko.observable(true),
save: saveChanges,
newEtCustomer: ko.observable(
{
Title: "",
Firstname: "",
Lastname: "",
Email: "",
Address: "",
City: "",
ZipCode: "",
Country: ""
}),
addEtCustomer: addNewEtCustomer,
editEtCustomer: editEtCustomer
};
과 저장이
function editEtCustomer(customer) {
vm.save();
}
라고 :
는이 저장소입니다, 여기 미안 1월
편집 코드의 마지막 조각에 관하여
힘든 데이터가 올바르게 다시 서버 측 컨트롤러에
관련 1월
을 최선을 다하고편집 :
좋아 스택 트레이스가이
을하는 데 도움이
bei System.Linq.Enumerable.First[TSource](IEnumerable`1 source, Func`2 predicate)
bei Breeze.WebApi.EFContextProvider`1.GetEntitySetName(Type entityType)
bei Breeze.WebApi.EFContextProvider`1.ProcessSaves(Dictionary`2 saveMap)
bei Breeze.WebApi.EFContextProvider`1.SaveChangesCore(SaveWorkState saveWorkState)
bei Breeze.WebApi.ContextProvider.OpenAndSave(SaveWorkState saveWorkState)
bei Breeze.WebApi.ContextProvider.SaveChanges(JObject saveBundle, TransactionSettings transactionSettings)
bei WatShop.Models.Entity.BreezeEntityRepo.SaveChanges(JObject saveBundle) in c:\Projekte\ProjekteWeb\WatShop\WatShop\Models\Entity\BreezeEntityRepo.cs:Zeile 33.
bei WatShop.Controllers.BreezeEntityController.SaveChanges(JObject saveBundle) in c:\Projekte\ProjekteWeb\WatShop\WatShop\Controllers\BreezeEntityController.cs:Zeile 44.
bei lambda_method(Closure , Object , Object[])
bei System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass13.<GetExecutor>b__c(Object instance, Object[] methodParameters)
bei System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
bei System.Web.Http.Controllers.ReflectedHttpActionDescriptor.<>c__DisplayClass5.<ExecuteAsync>b__4()
bei System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func`1 func, CancellationToken cancellationToken)
희망은 일월
에 관하여
'시퀀스에 일치하는 요소가 없습니다.'라는 C#/.NET 문제가있는 것 같습니다. 어떻게 든 변경 사항을 가로 채지 않았는지 또는 컨트롤러의 saveChanges 메서드가 제대로 작동하는지 확인 하시겠습니까? 또한, 코드 샘플 없이는 불가능한 옆에 있습니다. –
안녕하세요, knockout.js VM이 필요하면 컨트롤러 코드와 JSON을 추가했습니다. 사전에 감사합니다 안부 일 – subkonstrukt
그리고 무엇입니까'저장소입니다. SaveChanges (saveBundle)'????? Slauma 님의 의견에 +1 – Slauma