zoukankan      html  css  js  c++  java
  • 如何让所有实体类用相同名称的主键(很有力的问题,比如所有表实体主键都用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" });

    怎么样,有点意思呀!

  • 相关阅读:
    DHCP和NAT
    Mongos WoW
    是否能在构造函数,析构函数中抛出异常?
    Lua Getter/Setter
    xLua
    基于模板特化的Lua自动绑定系统
    为什么有人说富坚义博有着殿堂级的画功?他的画功体现在哪儿呢? 关注者 10205 被浏览 2701670
    在Windows和MacOS下编译Lua
    解决warning MSB8012:问题
    setjmp和longjmp
  • 原文地址:https://www.cnblogs.com/lori/p/2114228.html
Copyright © 2011-2022 走看看