EF架构~终于实现了Update方法的统一

简介:

首先,由于统一更新需要把原实例复制一份过来,所以要有一个主键统一的功能,而我们知道,不可以把所有表的主键都设置成统一的名称,所以,我们只能从一个虚拟的主键上想办法,这时,为了完成我们的需要,我们应该引进一个IEntity实体的统一接口,它有一个属性,我们使用ID表示,即它是统一实体的主键,由于int类型可以完全转化为string,所以我们把类型定义为string

代码如下:

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

 

而userbas这个实体将去实现IEntity这个接口,它的代码就变成了:
public  class  UserBas : IEntity
 
     {
 
         public  UserBas()
 
         {
 
             this .Diaries = new  List<Diary>();
 
             this .User_Roles = new  List<User_Roles>();
 
         }
 
      
 
         public  string  UserID { get ; set ; }
 
         public  string  UserName { get ; set ; }
 
         public  string  Email { get ; set ; }
 
         public  string  Password { get ; set ; }
 
         public  System.DateTime CreateDate { get ; set ; }
 
         public  System.DateTime UpdateDate { get ; set ; }
 
         public  int  Status { get ; set ; }
 
         public  virtual  ICollection<Diary> Diaries { get ; set ; }
 
         public  virtual  ICollection<User_Roles> User_Roles { get ; set ; }
 
         public  virtual  UserInfo UserInfo { get ; set ; }
 
  
 
         #region IEntity Members
 
  
 
         /// <summary>
 
         /// 返回实体的主键
 
         /// </summary>
 
         public  string  ID
 
         {
 
             get  { return  UserID; }
 
         }
 
  
 
         #endregion
 
     }

 

 

基础工作做完后,我们就可以修改EntityRepository.cs这个数据统一操作实现类了,

看它的update部分:

#region IEntityRepository<TEntity> Members
 
       public  void  Update(TEntity entity)
 
       {
 
           var  entry = this ._db.Entry(entity);
 
           if  (entry.State == EntityState.Detached)
 
           {
 
               var  entityToUpdate = DbSet.Find(entity.ID);
 
               EmitMapper.ObjectMapperManager.DefaultInstance.GetMapper<TEntity, TEntity>()
 
                                             .Map(entity, entityToUpdate);
 
               this .SaveChanges();
 
           }
 
       }
 
 
 
       public  void  Update(IList<TEntity> list)
 
       {
 
           throw  new  NotImplementedException();
 
       }
本文转自博客园张占岭(仓储大叔)的博客,原文链接:EF架构~终于实现了Update方法的统一 ,如需转载请自行联系原博主。
目录
相关文章
|
6月前
|
缓存 负载均衡 监控
微服务架构下的电商API接口设计:策略、方法与实战案例
本文探讨了微服务架构下的电商API接口设计,旨在打造高效、灵活与可扩展的电商系统。通过服务拆分(如商品、订单、支付等模块)和标准化设计(RESTful或GraphQL风格),确保接口一致性与易用性。同时,采用缓存策略、负载均衡及限流技术优化性能,并借助Prometheus等工具实现监控与日志管理。微服务架构的优势在于支持敏捷开发、高并发处理和独立部署,满足电商业务快速迭代需求。未来,电商API设计将向智能化与安全化方向发展。
406 102
|
11月前
|
自然语言处理 算法 JavaScript
面向长文本的多模型协作摘要架构:多LLM文本摘要方法
多LLM摘要框架通过生成和评估两个步骤处理长文档,支持集中式和分散式两种策略。每个LLM独立生成文本摘要,集中式方法由单一LLM评估并选择最佳摘要,而分散式方法则由多个LLM共同评估,达成共识。论文提出两阶段流程:先分块摘要,再汇总生成最终摘要。实验结果显示,多LLM框架显著优于单LLM基准,性能提升最高达3倍,且仅需少量LLM和一轮生成评估即可获得显著效果。
492 10
面向长文本的多模型协作摘要架构:多LLM文本摘要方法
|
11月前
|
机器学习/深度学习 人工智能 NoSQL
记忆层增强的 Transformer 架构:通过可训练键值存储提升 LLM 性能的创新方法
Meta研究团队开发的记忆层技术通过替换Transformer中的前馈网络(FFN),显著提升了大语言模型的性能。记忆层使用可训练的固定键值对,规模达百万级别,仅计算最相似的前k个键值,优化了计算效率。实验显示,记忆层使模型在事实准确性上提升超100%,且在代码生成和通用知识领域表现优异,媲美4倍计算资源训练的传统模型。这一创新对下一代AI架构的发展具有重要意义。
530 11
记忆层增强的 Transformer 架构:通过可训练键值存储提升 LLM 性能的创新方法
|
运维 负载均衡 Shell
控制员工上网软件:高可用架构的构建方法
本文介绍了构建控制员工上网软件的高可用架构的方法,包括负载均衡、数据备份与恢复、故障检测与自动切换等关键机制,以确保企业网络管理系统的稳定运行。通过具体代码示例,展示了如何实现这些机制。
245 63
|
12月前
|
机器学习/深度学习 算法 数据可视化
基于深度混合架构的智能量化交易系统研究: 融合SSDA与LSTM自编码器的特征提取与决策优化方法
本文探讨了在量化交易中结合时序特征和静态特征的混合建模方法。通过整合堆叠稀疏降噪自编码器(SSDA)和基于LSTM的自编码器(LSTM-AE),构建了一个能够全面捕捉市场动态特性的交易系统。SSDA通过降噪技术提取股票数据的鲁棒表示,LSTM-AE则专注于捕捉市场的时序依赖关系。系统采用A2C算法进行强化学习,通过多维度的奖励计算机制,实现了在可接受的风险水平下最大化收益的目标。实验结果显示,该系统在不同波动特征的股票上表现出差异化的适应能力,特别是在存在明确市场趋势的情况下,决策准确性较高。
431 5
基于深度混合架构的智能量化交易系统研究: 融合SSDA与LSTM自编码器的特征提取与决策优化方法
|
10月前
|
机器学习/深度学习 算法 文件存储
神经架构搜索:自动化设计神经网络的方法
在人工智能(AI)和深度学习(Deep Learning)快速发展的背景下,神经网络架构的设计已成为一个日益复杂而关键的任务。传统上,研究人员和工程师需要通过经验和反复试验来手动设计神经网络,耗费大量时间和计算资源。随着模型规模的不断扩大,这种方法显得愈加低效和不够灵活。为了解决这一挑战,神经架构搜索(Neural Architecture Search,NAS)应运而生,成为自动化设计神经网络的重要工具。
|
前端开发 JavaScript
掌握微前端架构:构建现代Web应用的新方法
本文介绍了微前端架构的概念及其在现代Web应用开发中的优势与实施方法。微前端架构通过将应用拆分成独立模块,提升了开发效率和灵活性。其核心优势包括技术栈灵活性、独立部署、团队协作及易于维护。文章详细阐述了定义边界、选择框架、管理状态和通信等关键步骤,并讨论了状态同步、样式隔离及安全性等挑战。微前端架构有望成为未来Web开发的重要趋势。
|
NoSQL Serverless 数据库连接
Serverless 架构实现弹幕场景问题之initializer方法在执行过程中遇到错误如何解决
Serverless 架构实现弹幕场景问题之initializer方法在执行过程中遇到错误如何解决
114 0
|
存储 Serverless API
Serverless 架构实现弹幕场景问题之在initializer方法中初始化数据库实例如何解决
Serverless 架构实现弹幕场景问题之在initializer方法中初始化数据库实例如何解决
161 0
|
Android开发
Android项目架构设计问题之onFirstItemVisibleChanged方法的调用如何解决
Android项目架构设计问题之onFirstItemVisibleChanged方法的调用如何解决
126 0

热门文章

最新文章