如何让所有实体类用相同名称的主键(很有力的问题,比如所有表实体主键都用ID)

简介:

这个问题比较有力量,哈哈!

例如:有两个表userbases和products

两个表的主键分别为UserID和ProductID,那么,我想问有没有一种方法把它们的主键统一起来,用一个字段名称表示呢?

事实上,这个问题可以从一个基础知识说起!

接口,没错就是接口,我们知道接口中的一切,在它的实现类中都必须被实现,想一下,如果在接口中定义一个object类型或者string类型的字段,让所以子类都为它赋值,那不就OK了吗?

哈哈,说干就干

    /// <summary>
    /// 实体模块统一接口
    /// </summary>
    public interface IEntity
    {
        /// <summary>
        /// 为了主键统一,而手动设置的
        /// </summary>
        string ID { get; }
    }

那如果有一个userbase实体类,它会继承这个统一接口,它的代码就变成了:

    public class Race : IEntity
    {
        public int Id { get; set; }
        public string Name { get; set; }
 
        #region IEntity Members
 
        public string ID
        {
            get { return Id.ToString(); }
        }
 
        #endregion
    }

这样,基础有了,看了例子:

 class bobo<TEntity> where TEntity : class,IEntity
    {
        public void hello(TEntity entity)
        {
            Console.WriteLine("\n\r共同的主键值是:"+entity.ID);
        }
    }
在方法里调用:
  bobo<Race> b = new bobo<Race>();
  b.hello(new Race { Id = 1, Name = "zzl" });

怎么样,有点意思呀!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:如何让所有实体类用相同名称的主键(很有力的问题,比如所有表实体主键都用ID),如需转载请自行联系原博主。

目录
相关文章
|
安全 数据库
通过E-R理解 主键和外键的关系
实例 现有课程和教师两个实体,课程实体的属性有课程名称、课程编号、课程属性、考试类型;教师实体的属性包括姓名、工号、职称;一门课程可以有多个教师,且每一位教师可以教授多门课程。教师每教授一门课有课序号。
5014 1
通过E-R理解 主键和外键的关系
|
4月前
|
数据库
实体类的字段和数据库中的字段不一致、并且没有做中间替换、会发生什么
这篇文章讨论了实体类字段与数据库字段不一致时可能导致的问题,作者通过实际案例展示了字段不匹配时查询无法正确执行,并说明了修正字段匹配后查询可以成功执行的情况。
实体类的字段和数据库中的字段不一致、并且没有做中间替换、会发生什么
|
7月前
|
Java 关系型数据库 MySQL
JPA中实体类属性相关注解与数据表列映射详解
JPA中实体类属性相关注解与数据表列映射详解
382 0
|
SQL 索引
SQL查看表字段信息如:字段名、字段类型、字段精度、字段大小、索引、主键等
表名、字段名、字段类型、字段精度、字段大小 字段名、是否为主键、字段类型、字段大小、索引名
1264 0
SQL查看表字段信息如:字段名、字段类型、字段精度、字段大小、索引、主键等
|
SQL 数据库
数据表的字段命名规范
数据表的字段命名规范
406 0
获取表的所有字段属性
获取表的所有字段属性
合并查询结果与为表和字段取别名
合并查询结果与为表和字段取别名
178 0
合并查询结果与为表和字段取别名
|
存储 关系型数据库 MySQL
数据表的类型
数据表的类型
|
关系型数据库