如何让所有实体类用相同名称的主键(很有力的问题,比如所有表实体主键都用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" });
怎么样,有点意思呀!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下