使用sequelize,我有两个关联模型:
var Assessment = sequelize.define("Assessment", {
name: DataTypes.STRING
});
var User = sequelize.define("User", {
sid: DataTypes.STRING
});
Assessment.belongsTo(User);
User.hasMany(Assessment);
Run Code Online (Sandbox Code Playgroud)
在一些应用逻辑之后,我有一个User:
User.findOrCreate( { where: {sid: "123"} } ).spread(function (user, created) {
// user is a User
});
Run Code Online (Sandbox Code Playgroud)
在这一点上,我不能得到sequelize关联用户作为一部分Assessment.findOrCreate.此代码将在数据库中创建一个新的评估记录(如果不存在),但它不会将用户密钥作为记录的一部分包含在内(而只是它只是NULL):
Assessment.findOrCreate( {
where: { },
include: [ { model: User, where: user.primaryKeyValues } ]
} ).spread( function (assessment, created) {
// ...
});
Run Code Online (Sandbox Code Playgroud)
我有一个解决方法,通过添加:
assessment.setUser(user).then( function(assessment) {
...
});
Run Code Online (Sandbox Code Playgroud)
...但是,这会导致SQL UPDATE只是创建记录的一部分.我相当肯定应该有办法做到这一点,但无法在docs/so/etc中找到任何东西.
我想创建一个 Window 对象,设置一些值,然后直接发送到打印机而不显示它。我认为这是正确的做法,但显示了一个空白文档。
PrintDialog dlg = new PrintDialog();
ReportWindow rw = new ReportWindow(); //WPF Window object
var sz = new Size(96*8.5, 96*11); //size of a paper page, 8.5x11
rw.Measure(sz); rw.Arrange(new Rect(sz));
// rw.Show(); //want to keep it hidden
dlg.PrintVisual(rw, "report printout");
rw.Close();
Run Code Online (Sandbox Code Playgroud)
为了验证打印代码是否正确,我将其放入表单 Loaded 事件中,调用 Show(),它工作正常。