簡體   English   中英

如何訪問並獲取另一個類的屬性?

[英]How do I access and get the property of another class?

我有一個應用程序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); }
}

項目ViewModel:

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"/>

這一切都取決於您如何存儲它,等等。 如果將其存儲在關系數據庫中,那么最簡單的方法就是創建前導密鑰,這將是一對多關系,其中一個雇員有多個項目,但是每個項目只有一個所有者(雇員)。 然后在代碼中,您必須具有反映此重新分配關系的屬性,例如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" }
}};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM