是否有将C#模型转换为挖空对象的系统?

时间:2014-04-02 13:25:40

标签: c# asp.net-mvc knockout.js

我的任务是为自从离开公司的人写的应用程序添加一项功能。这是用C#/ Knockout / Breeze / Durandal实现的。我想知道是否有人可以回答我关于淘汰赛和C#互动的内部运作的一些问题:

1)为什么淘汰赛将现有的ICollection正确转换为observableArray,而不是我已添加到模型中的新ICollection?

2)将Model转换为obs / obsArrays的机制是什么?我猜这与数据如何被撤回有关,但我不确定。

我没有看到任何将现有Collection初始化为observableArray的js代码,没有

vm.existingCollection = ko.observableArray();

他只是在源代码中使用它

vm.existingCollection.push(stuff);

编辑以包含一些供参考的代码

这是我正在使用的模型代码:

public class SimCompare : Report
    {
        public string LeftGraphName { get; set; }
        public int? LeftConsolidationId { get; set; }
        public int LeftAsOfDateOffset { get; set; }
        public int LeftSimCompareSimulationTypeId { get; set; }
        public virtual Consolidation LeftConsolidation { get; set; }
        public virtual ICollection<SimCompareSimulationType> LeftSimCompareSimulationTypes { get; set; }


        public string RightGraphName { get; set; }
        public int? RightConsolidationId { get; set; }
        public int RightAsOfDateOffset { get; set; }
        public int RightSimCompareSimulationTypeId { get; set; }
        public virtual Consolidation RightConsolidation { get; set; }
        public virtual ICollection<SimCompareSimulationType> RightSimCompareSimulationTypes { get; set; }

        public bool IsQuarterly { get; set; }
        public virtual ICollection<SimCompareScenarioType> SimCompareScenarioTypes { get; set; }
    }

然后有一个simcompareconfig.js文件,它以这样的方式开始:

define([
    'services/globalcontext',
    'viewmodels/simulationselectconfig',
    'durandal/app'
],
    function (globalContext, simulationselectconfig, app) {

        var simCompareVm = function (simCompare) {
            var self = this;
            this.simCompare = simCompare;

...

现有的函数可以添加一个带有如下所示行的scenarioType:

simCompare().simCompareScenarioTypes().push(newSimCompareScenarioType);

但是simCompareScenarioTypes()没有在JS方面定义(我可以看到)。但是在C#模型中有类似的定义。这就是让我相信模型以某种方式在幕后进行映射的原因。

任何帮助都受到了热烈的赞赏。

0 个答案:

没有答案