向对象中添加复杂类型对象-精简设计建议

本文关键字:对象 添加 复杂 类型 | 更新日期: 2023-09-27 18:15:02

我有一个项目实体,它链接到一个具有0到*关系的附属项目实体,即一个项目可以与许多其他项目相关联。我将这些"相关"项目存储在附属项目表中,它基本上是这样的:

Affiliated_Project
------------------
PK: Affiliated_Project_Id;
FK: Main_Project_Id
FK: Sub_Project_Id

我有一个显示主项目的表单,带有一个按钮,该按钮加载子表单,可以在其中搜索其他项目以链接到主项目。此表单根据项目集合进行搜索。当用户选择要链接的项目时,我将创建一个新的附属项目对象,如下所示:

private void AddProject(Project proj)  // proj is the Project coming from the search form
{
   AffiliatedProject proj = new AffiliatedProject 
   {
      SubProject = new Project 
      {
        ProjId = proj.ProjId ,
        ProjName = proj.ProjName ,
        ProjectType = new ProjectType
        {
           Code = proj.ProjectType.Code
        }
      },
   MainProject = SelectedProject;
};

我试着设置SubProject = proj,但这似乎不起作用。为什么呢?有人能告诉我怎样才能更好地处理这个问题吗?

向对象中添加复杂类型对象-精简设计建议

由于您将此标记为WCF DS问题,因此我假设上面的代码来自WCF DS客户机。请注意,WCF DS Client中的实体不是自我跟踪的,因此您必须通知DataServiceContext您想要进行的任何更改。有关更多细节(特别是创建和修改关系链接),请参阅:http://msdn.microsoft.com/en-us/library/dd756361.aspx