微风-在对象#<Object>中扩展结果没有方法'getProperty'查询失败

卡罗尔·安道尔(Martin Dearest)

在我的edmx模型中,有2个相关的表:Challenge和ChallengeNote(已将FK返回至ChallengeID)

我可以一整天在微风中做

var qry = dataservice.getQuery("Challenges");

但是,这每次都会失败:

var qry = dataservice.getQuery("Challenges").expand("ChallengeNotes");

searchFailed被调用,并且是控制台中唯一的错误信息。

return dataservice.execute(qry.inlineCount(true))
        .then(seachSucceeded)
        .fail(searchFailed);
  • Breeze是否支持这样的关系数据?
  • 是否需要编写一些自定义代码来支持?
  • 我想念什么?

这是一个与之相关的已回答问题,但是我已经在关注(除非我错过了什么)答案的解决方案(以及为什么我的ContextProvider中有2个context.Configuration设置)。当加载带有相关数据的实体时,breezejs错误

这是另一个未解决的类似问题,微风扩展查询失败,对象对象没有方法获取属性

这是我的提供程序代码(想要在项目中进一步使用BeforeSaveEntity重写):

public class ModelProvider : EFContextProvider<ModelEntities>
{
    public ModelProvider()
        : base() 
    {
        this.Context.Configuration.LazyLoadingEnabled = false;
        this.Context.Configuration.ProxyCreationEnabled = false;            
    }
}

这是我的控制器代码:

[BreezeController]
public class DataController : ApiController
{
    readonly ModelProvider _contextProvider = new ModelProvider();

    [HttpGet]
    public string Metadata()
    {
        return _contextProvider.Metadata();
    }

    [Queryable(AllowedQueryOptions = AllowedQueryOptions.All)]
    [HttpGet]
    public IQueryable<Challenge> Challenges()
    {
        return _contextProvider.Context.Challenges.Include(x => x.ChallengeNotes);
    }

    [HttpPost]
    public SaveResult SaveChanges(JObject saveBundle)
    {
        return _contextProvider.SaveChanges(saveBundle);
    }

    [HttpGet]
    public IQueryable<ChallengeNote> ChallengeNotes()
    {       
        return _contextProvider.Context.ChallengeNotes;
    }
}

当我浏览到URL时,它包括相关的实体: http://localhost:53644/breeze/data/Challenges?$filter=Active%20eq%20true&$top=10&$expand=ChallengeNotes&$inlinecount=allpages

这是来自控制器的数据 json结果

此时,imo一切都指向服务器或客户端上的Breeze配置。

TIA

杰伊·特拉班德(Jay Traband)

Breeze绝对支持这一点,但是您需要确保正确设置了Entity Framework模型。请查看Breeze zip中的DocCode示例,以获取同时使用expand(客户端)或EF include(服务器端)子句的许多示例。

关于您的问题的一种猜测是您使用的是Breeze camelCasing命名约定,因此您的“ expand”子句应为

var qry = dataservice.getQuery("Challenges").expand("challengeNotes");

即“ challengeNotes”(注意大小写)是与“ ChallengeNotes”的服务器端属性相对应的客户端属性的名称。为了明确起见,“ expand”子句将客户端“属性”的名称作为参数,而属性名称是Breeze.NamingConvention的结果。

相反,示例中的查询资源名称(即“挑战”)是服务器端资源的名称(由于使用[HttpGet]批注标记了“挑战”方法。此名称不受NamingConvention的影响。

旁注:您的示例同时具有expand和Include子句。所有这些本身就足够了。您不需要两者。通常,您可以在客户端查询中包括“ expand”子句,或者在服务器上具有实体框架“ Include”子句。第一个优点是可以控制客户端上的扩展,第二个优点是可以确保对指定资源的每个查询始终获取某些相关实体。

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

微风newValue.getProperty不是函数

来自分类Dev

jqxGrid失败,并显示错误“对象[object Object]没有方法'jqGrid'”

来自分类Dev

Cordova平台添加wp7失败:对象#<Object>没有方法'config_xml'

来自分类Dev

对象#<Object>没有方法'User'

来自分类Dev

TypeError:对象#<Object>没有方法

来自分类Dev

对象#<Object>没有方法'User'

来自分类Dev

对象#<Object>没有方法'findUser'

来自分类Dev

呈现html后立即在iframe中调用JavaScript方法失败,原因是“未捕获的TypeError:对象[object global]没有方法'getData'”

来自分类Dev

通用微风矢量方法

来自分类Dev

在调用SaveChanges之前微风JS查询会导致失败

来自分类Dev

创建查询以在对象数组中查找对象

来自分类Dev

微风没有发现变化

来自分类Dev

RequireJS + Waypoints:对象[object Object]没有方法'waypoint'

来自分类Dev

对象[object Object]没有方法'select2'

来自分类Dev

对象[object Object]没有方法'getAttribute'

来自分类Dev

object.freeze仅在对象方法上。的JavaScript

来自分类Dev

jQuery UI-未捕获的TypeError:对象[object Object]没有方法'tabs'(在jade中)

来自分类Dev

运行Object.keys以在对象中包括嵌套值

来自分类Dev

Javascript:在对象实例方法上使用apply()方法失败

来自分类Dev

有什么方法可以检查对象是否为微风实体对象?

来自分类Dev

SQL Server中存在对象锁时失败

来自分类Dev

javascript闭包:在对象中动态存储组失败

来自分类Dev

SQL Server中存在对象锁时失败

来自分类Dev

通过 html 在对象中显示图像。查询

来自分类Dev

Mongoose 查询在对象数组中查找特定元素

来自分类Dev

JavaScript Uncaught TypeError:对象[object global]没有方法

来自分类Dev

未捕获的TypeError:对象#<Object>没有方法'vibrate'

来自分类Dev

node.js-对象#<Object>没有方法'on'?

来自分类Dev

流星:TypeError:对象#<Object>没有方法'require'

Related 相关文章

  1. 1

    微风newValue.getProperty不是函数

  2. 2

    jqxGrid失败,并显示错误“对象[object Object]没有方法'jqGrid'”

  3. 3

    Cordova平台添加wp7失败:对象#<Object>没有方法'config_xml'

  4. 4

    对象#<Object>没有方法'User'

  5. 5

    TypeError:对象#<Object>没有方法

  6. 6

    对象#<Object>没有方法'User'

  7. 7

    对象#<Object>没有方法'findUser'

  8. 8

    呈现html后立即在iframe中调用JavaScript方法失败,原因是“未捕获的TypeError:对象[object global]没有方法'getData'”

  9. 9

    通用微风矢量方法

  10. 10

    在调用SaveChanges之前微风JS查询会导致失败

  11. 11

    创建查询以在对象数组中查找对象

  12. 12

    微风没有发现变化

  13. 13

    RequireJS + Waypoints:对象[object Object]没有方法'waypoint'

  14. 14

    对象[object Object]没有方法'select2'

  15. 15

    对象[object Object]没有方法'getAttribute'

  16. 16

    object.freeze仅在对象方法上。的JavaScript

  17. 17

    jQuery UI-未捕获的TypeError:对象[object Object]没有方法'tabs'(在jade中)

  18. 18

    运行Object.keys以在对象中包括嵌套值

  19. 19

    Javascript:在对象实例方法上使用apply()方法失败

  20. 20

    有什么方法可以检查对象是否为微风实体对象?

  21. 21

    SQL Server中存在对象锁时失败

  22. 22

    javascript闭包:在对象中动态存储组失败

  23. 23

    SQL Server中存在对象锁时失败

  24. 24

    通过 html 在对象中显示图像。查询

  25. 25

    Mongoose 查询在对象数组中查找特定元素

  26. 26

    JavaScript Uncaught TypeError:对象[object global]没有方法

  27. 27

    未捕获的TypeError:对象#<Object>没有方法'vibrate'

  28. 28

    node.js-对象#<Object>没有方法'on'?

  29. 29

    流星:TypeError:对象#<Object>没有方法'require'

热门标签

归档