gpt4 book ai didi

javascript - 在 Breeze 实体中分配新值

转载 作者:行者123 更新时间:2023-11-28 09:07:49 24 4
gpt4 key购买 nike

我正在使用 BreezeJS 和 DurandalJS 框架开发一个水疗 Web 应用程序。我遇到了一个无法解决的问题。

我有一个名为:汽车的实体,该实体包含名称、编号、所有者、类型和制造商。在此实体中,名称和编号在实体创建并保存在数据库中时填写。其他属性允许为 NULL。

这是因为其他值是在模式/对话框屏幕期间填充的。在这里,用户可以从列表中选择所有者,也可以从列表中选择类型和制造商。当用户从下拉列表中选择一项时,所选值应分配给 Car 实体的值。我怎样才能让它发挥作用?

    Car().Owner = newOwner;
Car.Owner() = newOwner;

这行不通。我尝试了很多组合。请记住,该值首先为 null,并且我无法插入新值;S

编辑 1

这里是Car的 Entity Framework 模型

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace Estimate_App.Models
{
public class tblCar
{
[Key]
public int CarID { get; set; }
public string CarNumber { get; set; }

private DateTime _CreationDate;
public DateTime CreationDate
{
get { return this._CreationDate; }
set { this._CreationDate = DateTime.Now; }
}

//This is the Owner
[ForeignKey("Owner")]
public int? OwnerID { get; set; }
public tblOwner Owner { get; set; }
}
}

这是我在 Car().Owner() 中放入的内容,考虑 Container 应该是 Car(这是具有相同问题的其他项目)

http://s13.postimg.org/pfvfdkeqv/question_with_entitys.png

我将鼠标悬停在 newValue 上。

编辑2

根据 Julián Yuste 的回答,我也尝试过这个,但没有成功。这是错误:

Error message

当我这样做时Container().Owner(newValue);

编辑3

获取所有者的代码

breeze.EntityQuery.from("Customers")
.using(dataservice.manager)
.execute().then(function (data) {
data.results.forEach(function (item) {
tempCustomerList.push(item); //ko.observableArray([]);
});
}).fail(function (data) {

});

最佳答案

您是否使用 dataservice 对象中的 EntityManager 来创建 newOwner 对象?

换句话说,您可能不应该这样做*:

var newOwner = new Owner();
newOwner.OwnerID = 123;

你应该这样做:

var newOwner = dataservice.manager.createEntity('Owner', { OwnerID: 123 });

*请注意,可以实际上使用new Owner(),但这需要您在代码中定义实体构造函数。 :-)

有关更多信息,请查看 Breeze 文档:http://www.breezejs.com/documentation/creating-entities

另请注意,您可以阅读 Breeze JavaScript 代码来帮助您理解该问题。如果您在 breeze.debug.js 中搜索错误消息(实体无法附加到另一个 EntityManager 中的实体。必须首先分离两个实体之一。) ,您将找到导致异常的代码行。从那里回溯可能会有所帮助。

编辑

问题的答案是确保 EntityManager 对象是 Singleton(在本例中为 dataservices.manager 对象)。

换句话说,使用与查询对象相同的EntityManager对象来更新对象。

关于javascript - 在 Breeze 实体中分配新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16714204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com