保存しようとしているエンティティのクライアント側グラフがあります。エンティティ (後述) を追加しようとすると、Breeze はタイトルのエラーを報告します。
必要に応じてエンティティを除外/含めることができるため、Breeze がグラフ内の他のすべてを保持し、最後にこのエンティティを追加しようとすることができました。エラーは一貫して報告されます。
コントローラーの saveBundle でエンティティーの JSON 表現をキャプチャーし、それをデータベースに手動で挿入できるため、エンティティーが正しく作成されていることが保証されます。
私はそれをさらにデバッグする方法について行き詰まっており、いくつかのガイダンスをいただければ幸いです。
コード ファースト クラスは次のとおりです (必須: DateTime、value、Message、User):
public Guid ID { get; set; }
public Guid MessageID { get; set; }
public Guid UserID { get; set; }
public DateTime DateTime { get; private set; }
public float Value { get; set; }
public virtual Message Message { get; set; }
public virtual User User { get; set; }
public virtual ICollection<PropertyValue> PropertyValues { get; set; }
保存バンドルは次のとおりです。
{
"entities": [
{
"ID": "cdc7a329-1ddc-4535-98f1-fd878af48823",
"MessageID": "57e88bc1-edc2-4905-af74-09df83edeba5",
"UserID": "1269a0ad-1019-471c-bdf9-a6e61aea468c",
"DateTime": "2013-01-04T23:32:01.067Z",
"Value": 0,
"entityAspect": {
"entityTypeName": "Score:#MyProjectName.Repo",
"entityState": "Added",
"originalValuesMap": {},
"autoGeneratedKey": {
"propertyName": "ID",
"autoGeneratedKeyType": "Identity"
}
}
}
],
"saveOptions": {
"allowConcurrentSaves": false
}
}
SQLは次のとおりです。
insert into Scores (
[MessageID],
[UserID],
[DateTime],
[Value]
) values (
'57e88bc1-edc2-4905-af74-09df83edeba5',
'1269a0ad-1019-471c-bdf9-a6e61aea468c',
'2013-01-04T23:28:18.872Z',
0
)
アップデート
サーバーのイベントのバージョンは、「System.ArgumentNullException」で始まります
Value cannot be null.\r\nParameter name: source
と:
at System.Linq.Enumerable.Select[TSource,TResult](IEnumerable`1 source, Func`2 selector)
at Breeze.WebApi.EFContextProvider`1.SaveChangesCore(Dictionary`2 saveMap)
at Breeze.WebApi.ContextProvider.SaveChanges(JObject saveBundle)
at [MyProject].[MyController].SaveChanges(JObject saveBundle) in ..\Controllers\[MyController].cs:line 53
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass13.<GetExecutor>b__c(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.<>c__DisplayClass5.<ExecuteAsync>b__4()
at System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func`1 func, CancellationToken cancellationToken)