如何访问和获取另一个类的属性

本文关键字:另一个 获取 属性 何访问 访问 | 更新日期: 2023-09-27 18:02:37

我有一个应用程序WPF MVVM允许员工创建一个或多个项目每个项目属于员工所以我的问题是:当我添加一个员工时,我还想添加一个项目,以便项目接收员工ID,以便我可以识别员工与项目之间的关系。下面是一个例子:

Employee (Id = 1) --------> Project (id = 1)
                            Project (id = 2) 
                            Project (id = 3)
Employee (Id = 2) --------> Project (id = 4) 
                            Project (id = 5) 
                            Project (id = 6)
下面是我的代码:

员工视图模型:

public class EmployeeViewModel
{
    Employee _employee = new Employee();
    private IList<Project> _ListeProject;
    public IList<Project> ListeProject
    { get; set; }
    public void InsetEmployee(Employee Employee)
    {
        context.Employee.Add(Employee);
        context.Entry(Employee).State = EntityState.Added;
        context.SaveChanges();
    }
    private void AddEmployee()
    { InsetEmployee(_employee); }
}

项目视图模型:

public class ProjectViewModel 
{
    Project _project = new Project();
    ProjectBL _projectBL = new ProjectBL ();
    private void AddProject()
    { _projectBL.InsetProject(_project); }        
}

Employee.xaml:

<telerik:RadButton  Content="Add" Height="23" Name="btnAdd"
    HorizontalAlignment="Stretch" VerticalAlignment="Bottom"
    Width="120" Command="{Binding AddEmployeeCMD}"/>
<telerik:RadButton   Content="Add Project" Height="23"
    HorizontalAlignment="Stretch" VerticalAlignment="Bottom"
    Width="120" Click="Project"/>

如何访问和获取另一个类的属性

这完全取决于你如何存储它等等。如果它存储在关系数据库中,那么最简单的事情就是创建前键,这将是一对多关系,其中一个Employee有多个项目,但每个项目只有一个所有者(Employee)。然后在代码中,你必须拥有反映这种关系的属性,例如,Project将拥有EmployeeId属性,Employee将拥有项目id列表作为属性。你也可以使用单独的表/对象来存储关系,如果你不想改变你的类。

似乎是一个很简单的问题。

class Employee
{
    public int Id { get; set; }
    public IEnumerable<Project> Projects { get; set; }
}
class Project
{
    public int EmployeeId { get; set; }
    public string Name { get; set; }
}
var employee = new Employee { Id = 1, Projects = new List<Project>
{
    new Project { EmployeeId = 1, Name = "Foo" },
    new Project { EmployeeId = 1, Name = "Bar" }
}};