Breeze不返回EF6拦截器中设置的值

时间:2015-07-24 21:05:10

标签: entity-framework breeze

我们正在使用Breeze与实体框架6.为了隔离我们的租户,我们使用EF拦截器几乎完全像这篇文章建议的那样(http://xabikos.com/multitenant/application%20design/software%20as%20a%20service/2014/11/17/create-a-multitenant-application-with-entity-framework-code-first---part-1.html)。因此,在创建新实体时,将通过IDbCommandTreeInterceptor在服务器上填充OrganizationId。但我们发现,当数据更新时,即使在数据库中正确设置了值,Breeze也不会在SaveResult中返回更新的数据。这是JSON的一个子集(通过Fiddler捕获)。

{
   "$id":"1",
   "$type":"Breeze.ContextProvider.SaveResult, Breeze.ContextProvider",
   "Entities":[
      {
         "$id":"2",
         "$type":"Ce.Business.Contacts.ContactEntity, Ce.Business",
         "ContactId":32,
         "EventId":"a1dcac14-4332-e511-8269-5cc5d46d497f",
         "Event":null,
         "FirstName":"Test",
         "LastName":"User1",
         "WebsiteUrl":null,
         "OrganizationId":"00000000-0000-0000-0000-000000000000"
      }
   ],
   "KeyMappings":[
      {
         "$id":"12",
         "$type":"Breeze.ContextProvider.KeyMapping, Breeze.ContextProvider",
         "EntityTypeName":"Ce.Business.Contacts.ContactEntity",
         "TempValue":-1,
         "RealValue":32
      }
   ],
   "Errors":null
}

您可以看到OrganizationId是一个空的GUID,即使它在服务器上设置正确。有什么我们需要做的让Breeze返回拦截器改变的值吗?我原以为Breeze会从数据库中返回值而不是它认为的值。

0 个答案:

没有答案