Breeze.NET服务器代码引发Int32Converter异常

Breeze.NET服务器代码引发Int32Converter异常,breeze,Breeze,在对JavaScript客户端代码进行了一些代码更改后,我开始看到以下错误。我也看到其他人报告了这一情况,但没有看到任何人能够缩小范围 Int32Converter cannot convert from System.Int64. 在深入研究这个问题之后,它似乎是Breeze.NET服务器代码中的一个bug。此处异常堆栈跟踪的一部分显示了错误的来源: at Breeze.ContextProvider.EF6.EFContextProvider`1.ConvertValue(Object

在对JavaScript客户端代码进行了一些代码更改后,我开始看到以下错误。我也看到其他人报告了这一情况,但没有看到任何人能够缩小范围

Int32Converter cannot convert from System.Int64.
在深入研究这个问题之后,它似乎是Breeze.NET服务器代码中的一个bug。此处异常堆栈跟踪的一部分显示了错误的来源:

  at Breeze.ContextProvider.EF6.EFContextProvider`1.ConvertValue(Object val, Type toType) in EFContextProvider.cs:line 603
  at Breeze.ContextProvider.EF6.EFContextProvider`1.SetPropertyValue(Object entity, String propertyName, Object value) in EFContextProvider.cs:line 573
  at Breeze.ContextProvider.EF6.EFContextProvider`1.<>c__DisplayClass10.<RestoreOriginal>b__f(KeyValuePair`2 kvp) in EFContextProvider.cs:line 468
  at System.Collections.Generic.List`1.ForEach(Action`1 action)
  at Breeze.ContextProvider.EF6.EFContextProvider`1.RestoreOriginal(EntityInfo entityInfo) in EFContextProvider.cs:line 466
  at Breeze.ContextProvider.EF6.EFContextProvider`1.<ProcessAllDeleted>b__9(EFEntityInfo entityInfo) in EFContextProvider.cs:line 337
  at System.Collections.Generic.List`1.ForEach(Action`1 action)
  at Breeze.ContextProvider.EF6.EFContextProvider`1.ProcessAllDeleted(List`1 deletedEntities) in EFContextProvider.cs:line 334
  at Breeze.ContextProvider.EF6.EFContextProvider`1.SaveChangesCore(SaveWorkState saveWorkState) in EFContextProvider.cs:line 219
  at Breeze.ContextProvider.ContextProvider.OpenAndSave(SaveWorkState saveWorkState)
  at Breeze.ContextProvider.ContextProvider.SaveChanges(JObject saveBundle, TransactionSettings transactionSettings)

接得好。截至2014年6月16日,breeze.server.net GitHub repo中已对此进行了修复,并将成为下一个完整breezeJs版本的一部分,有望在本周晚些时候发布。当它在新的nuget软件包中发布时,我会在这里发帖

    [TestMethod]
    public async Task RemovingNavigationProperty()
    {
        var entityManager = await TestFns.NewEm(_northwindServiceName);

        var employee = new Employee()
        {
            FirstName = "First",
            LastName = "Employee"
        };
        entityManager.AddEntity(employee);


        var manager = new Employee()
        {
            FirstName = "First",
            LastName = "Manager"
        };
        entityManager.AddEntity(manager);
        employee.Manager = manager;

        try
        {
            var saveResult = await entityManager.SaveChanges();

            // Now reverse everything
            manager.EntityAspect.Delete();
            employee.Manager = null;

            employee.EntityAspect.Delete();

            saveResult = await entityManager.SaveChanges();

        }
        catch (Exception e)
        {
            var message = string.Format("Save should have succeeded;  Received {0}: {1}",
                                        e.GetType().Name, e.Message);
            Assert.Fail(message);
        }

    }