首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSLA移除子对象

CSLA移除子对象
EN

Stack Overflow用户
提问于 2014-04-14 12:49:39
回答 1查看 1.9K关注 0票数 1

我是CSLA的新手,我还在努力想办法摆脱它。我需要知道如何通过其父对象删除子对象?例如,如果我有一个项目类(父类),它有一些ProjectResources (子),并且我需要删除一个项目。我如何通过CSLA做到这一点?e.g

代码语言:javascript
复制
                Project myProject = Project.GetByProjectID(projectID);
                ProjectResourceList resources = myProject.ProjectResources;
                myProject.Delete();
                if (myProject.IsDeleted)
                {
                    while (resources.Any())
                    {
                        myProject.ProjectResources.Remove(resources[0].ProjectResourceID);

                    }
                }
                myProject.Save();

Remove()不会将它们从数据库中删除。显然,我不能删除父对象,因为SQL server会抱怨引用的完整性。我不希望任何存储的proc处理级联删除。如有任何建议,将不胜感激。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-11 21:14:20

CSLA集合是内存中的域对象.当您从集合中移除某项时,该项将从活动集合中移除并添加到DeletedList中(在集合中受保护)。

当您要求数据门户更新对象图时,您的数据访问代码需要删除DeletedList中的项,并在活动集合中插入/更新项。

自2007年以来,CSLA版本通过调用集合所包含的子对象中的适当Child_Insert、Child_Update和Child_Delete方法自动完成此操作。

在任何情况下,您都可以在“使用CSLA 4”一书中找到有关数据门户操作的详细信息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23060545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档