如何正确设置JayData + Typescript +本地数据库?

时间:2014-07-22 18:51:19

标签: typescript jaydata

我开始在Typescript中开发移动Web应用程序并决定使用JayData。在线查看JayData的网站,我只找到了有关如何使用OData打字稿的详细信息。

经过多次挖掘,我设法让它发挥作用。我目前只面临一个问题(稍后将在本文中介绍)。

首先,我想分享一些步骤,让它在这里工作,以帮助任何人尝试实现同样的目标。

您可以按照以下步骤操作:

  1. 下载JaySvcUtil(enter link description here
  2. 将内容提取到所需的文件夹并运行以下命令:

    C:\temp\Jaydata\>JaySvcUtil.exe --metadataUri http://services.odata.org/Northwind/Northwind.svc/$metadata --out northwind.js -namespace Northwind
    
  3. 这会生成2个文件(' northwind.d.ts'和' jaydata.js')。这些文件可以用作"模板"为您编写自己的安装类/代码。

  4. 更改类名称/属性以反映您自己的架构。

  5. 您需要同时使用这两个文件。 .js文件包含数据库定义(数据类型/等)。

  6. 完成设置后,在html页面上添加Models / JayData脚本的引用:

    <script src="scripts/libs/jaydata/jaydata.js"></script>
    <script src="scripts/libs/jaydata/jaydataproviders/WebApiProvider.min.js">/script>
    <script src="scripts/models/models.js"></script>
    
  7. 在主TS文件上,您可以初始化数据库:

    var myDB = new MyDB.Model.TodoEntities({
            name: 'local',
            databaseName: 'myDbName'
        });
    
        myDB.Todos.add(new MyDBModel.Todo({ TodoId: undefined, Description: '123-654-1'}));
    
  8. 这样做就像魅力一样。希望它可以帮到某人。


    关于我的问题:

    一切正常,除了执行查询时的智慧:

        myDB.Todos.filter(col => col.TodoId > 1)
                    .orderByDescending(col => col.TodoId) <---NO INTELLISENCE HERE
    

    在查询的第一部分(过滤器)我有完全的智能,但是在第二部分(orderByDescending) col 未标识为MyDBModel.Todo类型。如果我手动将它转换为MyDBModel.Todo,它可以正常工作。

    我做错了吗?有办法解决吗?

    由于

0 个答案:

没有答案