zoukankan      html  css  js  c++  java
  • 光脚丫学LINQ(030):如何让实体类成员表示主键

    视频演示:http://u.115.com/file/f28f964604


    光脚总结
    要想使实体类中的列属性表示数据表中的主键列,则可以为ColumnAttribute特性添加IsPrimaryKey属性,并将其设置为true。
    实体类如果没有指定任何主键,则数据只能读取,不能修改。是相对于数据库而言,而并非内存中的对象。
    可以同时指定多个主键,而且所指定的主键并非一定要与数据表中的主键对应。
    设置一个对应数据表主键列的属性,肯定能够正确的更新数据,这是最通常的做法。
    设置一个不对应数据表的主键,能够正确更新数据。
    设置多个主键列属性,也能够正确更新数据。
    但是,已经被设置为主键列的属性,其数据不可以被修改,更不会被更新的,否则就会引发异常。
    异常的大意上是说:无法更改定义对象标识的成员。
    也就是说,只能设置非主键列的属性值。在这种情况下数据将会被正确的更新。
    如果没有修改主键列的属性值,那么以上几种情况更新数据时,所生成SQL命令基本上是一致的,似乎没什么区别。


    示例代码

    [Column(Storage="_CustomerID", DbType="NChar(5) NOT NULL",   
        CanBeNull=false,   
        IsPrimaryKey=true)]   
    public string CustomerID   
    {   
        get  
        {   
            return this._CustomerID;   
        }   
        set  
        {   
            if ((this._CustomerID != value))   
            {   
                this.OnCustomerIDChanging(value);   
                this.SendPropertyChanging();   
                this._CustomerID = value;   
                this.SendPropertyChanged("CustomerID");   
                this.OnCustomerIDChanged();   
            }   
        }   
    }
  • 相关阅读:
    TP6|TP5.1 PHPoffice导出|导入
    centOS 7 环境搭建之安装 Redis
    centOS 7 环境搭建之安装 MySQL
    双向循环链表(DoubleLoopLinkList)
    双向链表(DoubleLinkList)
    可执行程序的编译过程
    C语言文件操作
    C语言跨平台时间操作计算时间差
    C语言线程安全问题
    C++类型双关
  • 原文地址:https://www.cnblogs.com/GJYSK/p/1867754.html
Copyright © 2011-2022 走看看