zoukankan      html  css  js  c++  java
  • castle ar 的update方法!!

    有这么一个领域类
     public class Task    {
            private Project project;
            /// <summary>
            /// 项目
            /// int
            /// </summary>
            [BelongsTo("Project")]
            public Project Project
            {
                get { return project; }
                set { project = value; }
            }
            private IList childrens;
            [HasMany(typeof(Task), Table = "Task", ColumnKey = "ParentTask")]
            public IList Childrens
            {
                get { return childrens; }
                set { childrens = value; }
            }
            private Task parentTask;
            /// <summary>
            /// 父任务
            /// </summary>
            [BelongsTo("ParentTask")]
            public Task ParentTask
            {
                get { return parentTask; }
                set { parentTask = value; }
            }
           private IList members;
            [HasMany(typeof(Member), Table = "Member", ColumnKey = "Task")]
            public IList Members
            {
                get { return members; }
                set { members= value; }
            }

    }
    这里我关注 private IList childrens;,,就是因为有这样一个关系存在,当Task在做更新(update)时候,除了发生本身的一个update外,,还会根据此关系发生'UPDATE Task SET ParentTask = null WHERE ParentTask = @p0', N'@p0 int', @p0 = 327681,,,这是因为task与自己的子task有一对多关系!!!

    以上是主外键在一个表时,,当主外在不同表中时,,比如上面的一个任务对应多个成员时,在更新任务后,也会紧紧跟一句生'UPDATE Member SET Task = null WHERE Task = @p0', N'@p0 int', @p0 = 327643,

    ==================
    注意:
    但是对于外键所在对象做更新时候,,,只更新自己,与其他对象不在发生任何联系

  • 相关阅读:
    oracle unwrap解密工具
    介绍一款国产的矢量图形设计软件--百绘大师
    windows10上安装OpenSSL_1.1.1d_x64
    centos7上安装phantomjs并对页面截屏
    如何用Java Socket实现一个简单的Redis客户端
    cenos上通过yum安装mariadb
    windows上杀掉指定名称的进程
    centos磁盘满时查找大文件清理掉
    为Vertica数据库增加自定义函数to_base64和from_base64
    解决Vertica集群某节点出现Clock skewed告警
  • 原文地址:https://www.cnblogs.com/pojia/p/851060.html
Copyright © 2011-2022 走看看