填充视图模型中使用的类表

Posted

技术标签:

【中文标题】填充视图模型中使用的类表【英文标题】:Filling tables of classes that are used in viewmodel 【发布时间】:2016-06-13 14:33:16 【问题描述】:

我有一个包含两个类的视图模型。 这些类与另一个类相关,一对多和一对一的关系。 如何将数据从视图模型传递到与其他表有关系的表中? 例如:

public class A

    public int a_id  get; set; 
    public string a_field1  get; set; 
    ...
    //one-to-many with B
    public virtual ICollection<B> Bs  get; set; 
    //one-to-one with D
    public virtual D Ds  get; set; 

public class B

    public int B_id  get; set; 
    public string B_field1  get; set; 
    ...
    public int a_id  get; set; 
    public int c_id  get; set; 
    // one-to-many with A , C
    public virtual A As  get; set; 
    public virtual C Cs  get; set; 

public class C

    public int C_id  get; set; 
    public string C_field1  get; set; 
    ...
    // one-to-many with B
    public virtual ICollection<B> Bs  get; set; 
    // one-to-one with E
    public virtual E Es  get; set; 

我的视图模型是由 A 和 B 组成的。 如何将信息添加到具有来自 B 的集合和来自 D 的虚拟实例的 A 中? 或者在 B 中具有来自 A 和 C 的虚拟实例? 我要更改我的视图模型吗? 请指导和建议。

【问题讨论】:

【参考方案1】:

我找到了答案: 当你想从上面的类中创建视图模型时,你不需要在视图模型中使用虚拟集合或虚拟属性。 你应该只使用你需要的属性。 在此示例中,您的 A 和 B 视图模型将是:

public class VM_A_B


    public int A_id  get; set; 
    public int A_Field1  get; set; 
    public int b_id  get; set; 
    public int b_Field1  get; set; 
    //no need any virtual collection or virtual property

祝你好运。

【讨论】:

这是一个相当模糊的答案......如果您包含一些代码,它将对未来的读者更有帮助。

以上是关于填充视图模型中使用的类表的主要内容,如果未能解决你的问题,请参考以下文章

Angular 4 - 重置表单使插入的模型在视图中填充空值

如何在 ASP.NET MVC 3 中为填充的下拉列表创建视图模型

在 NavigationView 中加载视图的标准方法是啥,每个视图都拥有一个从 API 填充的模型?

给定填充 ro QList 的 Qt 模型视图

我应该在 Silverlight 项目中使用模型-视图-视图模型 (MVVM) 模式吗?

Revit 平面图常规模型怎么换颜色