我在刷新Breeze元数据时遇到问题(无论浏览器类型如何)。即使我清除了每个浏览器的缓存,我也看不到我对后端的实体类所做的更改。这是一个例子:
我有一个基类,我们称之为BaseClass,它有一个字符串属性,比如说Property1。我将BaseClass声明为一个公共类,其ID字段上有[Key]注释。出于本讨论的目的,我们假设BaseClass只有这两个字段。
我有一个派生类,我们称之为DerivedClass,它也被声明为继承自BaseClass(DerivedClass:BaseClass)的公共类。
在给定Breeze控制器中的一个方法中,该方法将DerivedClass的Property1实例设置为特定值,代码执行没有问题并返回一个实体,在进程中的Breeze控制器方法调用内不产生任何错误(再次,这是在DerivedClass实例对象中设置的BaseClass.Property1字段)。
当我在Chrome中设置断点并尝试查看data.results [0]对象的返回方法时(为了确保Property1存在),Property1未被列为公开方法之一。 DerivedClass的所有属性都是作为方法公开的,而不是Property1。
此外,如果我在同一名称空间中创建另一个名为DerivedClass的部分类并创建一个名为property1的属性(而不是Property1),即使在我的Breeze Controller中,我将DerivedClass实例的property1和Property1值都设置为某个值,当从服务器成功返回数据后,在'.then'调用中,在我的viewmodel.js文件中命中断点时,这些属性都不会显示为方法。我继续看到与DefaultClass实体相关的所有方法,除了property1和Property1。
最后,如果我向DerivedClass(名为Property2的字段)添加一个字段,并将其值设置为为property1和Property1设置的相同值,则在Chrome中触发断点时,Property2也不可见。
我已刷新浏览器上的缓存,停止并重新启动IISExpress(这是在本地主机上运行),重命名文件Breeze.WebApi.dll和Breeze.WebApi.EF以确保它们被重建(它们是),但我仍然没有看到变化。
非常感谢任何建议!