专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

Net6。0中实现自动生成代码

  1、前言
  生成代码NuGet包:XmSoft。CodeGenerator
  该包将会自动生成代码,如:实体,仓储,服务,控制器及校验等文件。
  控制器包含CRUD接口:创建,修改,删除,详情,列表。
  参考:ORM框架采用SqlSugar框架生成
  2、示例创建控制台应用输出项目名称自定义dotnetnewconsoleoXmSoft。AutoCode引入NuGetdotnetaddpackageXmSoft。CodeGeneratorappsettings。json配置代码命名空间及输出位置比如:{CodeHelperOptions:{ConnectConnectionString:Server127。0。0。1;Uidsa;Pwdxxxxxxx;Databasetest;Port3306;Charsetutf8;,ProviderName:MySql。Data。MySqlClient,NameSpace:{ModelsNamespace:XmSoft。Domain。Models,DomainName:XmSoft。Domain,DtoNamespace:XmSoft。ViewModels。Dto,ApiControllerNamespace:XmSoft。Api。Application,InterfaceName:XmSoft,ServicesNamespace:XmSoft。Service,RepositoriesNamespace:XmSoft。Repository,ValidatorNamespace:XmSoft。Validation},CodePath:{ModelsPath:XmSoft。DomainModels,DtoPath:XmSoft。ViewModelsDto,IRepositoriesPath:XmSoft。IRepository,IServicesPath:XmSoft。IService,RepositoriesPath:XmSoft。Repository,ServicesPath:XmSoft。Service,ControllerPath:XmSoft。ApiApplication,ValidatorPath:XmSoft。Validation}}}Utility。cs输入表名,多个用逗号隔开publicstaticclassUtility{publicstaticstring〔〕WriteTables(){Console。WriteLine(请输入数据表名称,多个用逗号隔开);varstrReadConsole。ReadLine();vartablesstrRead?。Split(,);if(string。IsNullOrEmpty(strRead)tablesnulltables。Length0){WriteTables();}returntables??Array。Emptystring();}}Program。csConsole。WriteLine(自动生成代码);varconfigurationnewConfigurationBuilder()。SetBasePath(Directory。GetCurrentDirectory())。AddJsonFile(appsettings。json)。Build();varoptionsconfiguration。GetSection(nameof(CodeHelperOptions))。GetCodeHelperOptions();varpathDirectory。GetCurrentDirectory();varfilterAXmSoft。AutoCodebinDebuget6。0;XmSoft。AutoCode修改创建的项目名varfilterBXmSoft。AutoCodebinReleaseet6。0;pathpath。Replace(filterA,);pathpath。Replace(filterB,);Console。WriteLine(34;{path});options。CodePath。ValidatorPathPath。Combine(path,options。CodePath。ValidatorPath);options。CodePath。ControllerPathPath。Combine(path,options。CodePath。ControllerPath);options。CodePath。ModelsPathPath。Combine(path,options。CodePath。ModelsPath);options。CodePath。IRepositoriesPathPath。Combine(path,options。CodePath。IRepositoriesPath);options。CodePath。IServicesPathPath。Combine(path,options。CodePath。IServicesPath);options。CodePath。RepositoriesPathPath。Combine(path,options。CodePath。RepositoriesPath);options。CodePath。ServicesPathPath。Combine(path,options。CodePath。ServicesPath);options。CodePath。DtoPathPath。Combine(path,options。CodePath。DtoPath);vartablesUtility。WriteTables();options。Tablestables;Console。WriteLine(是否确定执行(YN));varcommandConsole。ReadLine();if(!string。IsNullOrEmpty(command)command。ToLower()y){varhelpernewCodeGeneratorHelper(options);helper。Run();Console。WriteLine(完成);}Console。ReadKey();
  3、执行ztest表sql语句DROPTABLEIFEXISTSztest;CREATETABLEztest(idbigint(20)NOTNULLAUTOINCREMENTCOMMENTid,businessidbigint(20)NULLDEFAULTNULLCOMMENT业务id,titlevarchar(50)CHARACTERSETutf8mb4COLLATEutf8mb4unicodeciNULLDEFAULTNULLCOMMENT标题,contenttextCHARACTERSETutf8mb4COLLATEutf8mb4unicodeciNULLCOMMENT内容,picturetextCHARACTERSETutf8mb4COLLATEutf8mb4unicodeciNULLCOMMENT图片,statusint(11)NULLDEFAULTNULLCOMMENT状态0正常1关闭,remarkvarchar(200)CHARACTERSETutf8mb4COLLATEutf8mb4unicodeciNULLDEFAULTNULLCOMMENT备注说明,sortint(11)NULLDEFAULTNULLCOMMENT排序,createtimedatetime(0)NULLDEFAULTNULLCOMMENT创建时间,createbyvarchar(64)CHARACTERSETutf8mb4COLLATEutf8mb4unicodeciNULLDEFAULTNULLCOMMENT创建Id,updatetimedatetime(0)NULLDEFAULTNULLCOMMENT更新时间,updatebyvarchar(64)CHARACTERSETutf8mb4COLLATEutf8mb4unicodeciNULLDEFAULTNULLCOMMENT更新Id,delFlagchar(1)CHARACTERSETutf8mb4COLLATEutf8mb4unicodeciNULLDEFAULTNULLCOMMENT是否删除1是,0否,PRIMARYKEY(id)USINGBTREE)ENGINEInnoDBAUTOINCREMENT4CHARACTERSETutf8mb4COLLATEutf8mb4unicodeciCOMMENT测试表ROWFORMATDynamic;SETFOREIGNKEYCHECKS1;补充说明:表必须有个主键key
  执行生成实体summary测试表summary〔SugarTable(ztest)〕publicpartialclassTest:BaseBusinessEntityint?{summary标题summary〔SugarColumn(ColumnNametitle)〕publicstringTitle{get;set;}summary内容summary〔SugarColumn(ColumnNamecontent)〕publicstringContent{get;set;}summary图片summary〔SugarColumn(ColumnNamepicture)〕publicstringPicture{get;set;}summary状态0正常1关闭summary〔SugarColumn(ColumnNamestatus)〕publicint?Status{get;set;}summary备注说明summary〔SugarColumn(ColumnNameremark)〕publicstringRemark{get;set;}summary排序summary〔SugarColumn(ColumnNamesort)〕publicint?Sort{get;set;}}说明:自定义BaseBusinessEntity或BaseEntity自定义,这里的主键名id,业务idsummarysummarytypeparamnameTtypeparampublicabstractclassBaseBusinessEntityT:BaseEntityT{summary业务Idsummary〔SugarColumn(ColumnNamebusinessid)〕publiclong?BusinessId{get;set;}}publicabstractclassBaseEntityT{〔SugarColumn(IsPrimaryKeytrue,IsIdentitytrue,ColumnNameid)〕publicTId{get;set;}summary0未删除1回收站2已删除summary〔SugarColumn(ColumnNamedelFlag)〕〔JsonIgnore〕publicstringDelFlag{get;set;}summary创建时间summary〔SugarColumn(ColumnNamecreatetime)〕〔Column(createtime)〕〔JsonIgnore〕publicDateTime?CreateTime{get;set;}summary创建Idsummary〔SugarColumn(ColumnNamecreateby)〕〔Column(createid)〕〔JsonIgnore〕publicstringCreateBy{get;set;}summary修改时间summary〔SugarColumn(ColumnNameupdatetime)〕〔Column(updatetime)〕〔JsonIgnore〕publicDateTime?UpdateTime{get;set;}summary修改者IDsummary〔SugarColumn(ColumnNameupdateby)〕〔Column(updateid)〕〔JsonIgnore〕publicstringUpdateBy{get;set;}publicvoidCreate(){CreateBy(userId?。ToString())??CreateBy;BusinessIdbusinessId??BusinessId;CreateTimeDateTime。Now;DelFlag0;}publicvoidUpdate(){UpdateTimeDateTime。Now;}}生成仓储EFRepositoryTest引用XmSoft。Core。SqlSugar。RepositorypublicsealedclassTestRepository:EFRepositoryTest,ITestRepository{publicreadonlyISqlSugarClientContext;publicTestRepository(ISqlSugarClientcontext):base(context){Contextcontext;}publicISugarQueryableTestSugarQueryable(){returnContext。QueryableTest();}}生成服务引用XmSoft。Core。SqlSugar。ServicepublicclassTestService:BaseServiceTest,ITestService{publicTestService(ITestRepositoryrepository):base(repository){}publicasyncoverrideTaskIResultboolCreate(Testentity,dynamicuser){varvalidationnewAddTestValidator()。Validation(entity);if(!validation。Succeeded)returnvalidation。Failbool();entity。Create();entity。CreateByuser?。UserName;entity。BusinessIduser?。BusinessId;returnawaitbase。Create(entity);}publicasyncoverrideTaskIResultintUpdate(Testentity,dynamicuser){varvalidationnewUpdateTestValidator()。Validation(entity);if(!validation。Succeeded)returnvalidation。Failint();entity。Update();entity。UpdateByuser?。UserName;returnawaitbase。Update(entity);}publicasyncTaskIResultPageTestList(Testmodel,PageInfopager,dynamicuser){long?businessIduser?。BusinessId;varpredicateExpressionable。CreateTest();predicate。And(qq。BusinessIdbusinessId);varresultawaitPage(pager。PageIndex,pager。PageSize,predicate。ToExpression(),qq。CreateTime,false);returnresult;}}生成Dtosummary测试表summarypublicpartialclassTestDto{summaryidsummarypubliclongId{get;set;}summary业务idsummarypubliclong?BusinessId{get;set;}summary标题summarypublicstringTitle{get;set;}summary内容summarypublicstringContent{get;set;}summary图片summarypublicstringPicture{get;set;}summary状态0正常1关闭summarypublicint?Status{get;set;}summary备注说明summarypublicstringRemark{get;set;}summary排序summarypublicint?Sort{get;set;}}生成控制器BaseAppService可自定义可继承ControllerBase等summary测试表summary〔Route(test)〕〔Tags(测试表)〕publicclassTestAppService:BaseAppService{privatereadonlyITestServiceservice;publicTestAppService(ITestServiceservice){serviceservice;}summary创建测试表summaryparamnamemodelparamreturnsreturns〔HttpPost〕〔SwaggerResponse(200,Typetypeof(IResultbool))〕〔Log(Title测试表,BusinessTypeBusinessType。INSERT)〕publicIActionResultCreate(TestDtomodel)service。Create(model。AdaptTest(),User)。ApiResult();summary修改测试表summaryparamnamemodelparamreturnsreturns〔HttpPut〕〔SwaggerResponse(200,Typetypeof(IResultint))〕〔Log(Title测试表,BusinessTypeBusinessType。UPDATE)〕publicIActionResultUpdate(TestDtomodel)service。Update(model。AdaptTest(),User)。ApiResult();summary删除测试表summaryparamnameidparamreturnsreturns〔HttpDelete({id})〕〔SwaggerResponse(200,Typetypeof(IResultint))〕〔Log(Title测试表,BusinessTypeBusinessType。DELETE)〕publicIActionResultDelete(intid)service。Delete(qq。Idid)。ApiResult();summary获取测试表数据summaryparamnameidparamreturnsreturns〔HttpGet({id})〕〔SwaggerResponse(200,Typetypeof(IResultTest))〕publicIActionResultInfo(intid)service。Info(qq。Idid)。ApiResult();summary测试表列表summaryparamnamemodelparamparamnamepagerparamreturnsreturns〔HttpGet(list)〕〔SwaggerResponse(200,Typetypeof(IResultPageTest))〕publicIActionResultList(TestDtomodel,PageInfopager)service。List(model。AdaptTest(),pager,User)。ApiResult();}
  Swagger显示效果注:需要Demo请私信发邮箱

拼手速大战熄火,互联网大厂放弃春晚红包距离除夕只剩几天,往年气氛火热的春晚红包,变得静悄悄。前几天,央视总台举行2023年春节联欢晚会新闻发布会,宣布与微信视频号抖音和快手达成春晚直播合作,对红包合作事宜只字未提。要知金茂大厦邀市民新年登高云中漫步送出最暖新春祝福东方网记者曹磊11月19日报道新年步步高节节向上攀,用登高的方式为新的一年祈福。新春即将来临之际,金茂大厦88层观光厅特别推出,展宏兔主题展空中爱情主题邮局送祝福等活动,邀请市民游中国玩具缘何走俏RCEP市场?记者一线调研岁末年初,记者在我国外贸重镇宁波调研时发现,2022年111月,宁波对区域全面经济伙伴关系协定(RCEP)成员国出口玩具10。4亿元,同比增长27。4,是当地外贸整体增幅的近4倍。春节将至,尿素市场全线走稳,1月19日最新尿素价格行情哈喽,大家好!这里是化肥价格行情!关注我们每天看最新尿素复合肥磷铵钾肥价格行情!今天(2023年1月19日)下面我们说说今天国内尿素价格行情!今日国内尿素行情就一个字稳,春节将至,现在市场那么好都没赚到钱,以后你更赚不到钱!对于绝大多数人而言,不堪的2022已经过去,每个人都期盼来年能否极泰来,而我却要感谢这一切,在过去的365天里,我完成了人生又一次迭代进化,一些经验和感悟,分享给大家,也作为自己一破产了?百万人涌入这家淘宝店2023年初,天府可乐因破产新闻冲上热搜,国货品牌再现野性消费。其淘宝直播间,开播45分钟就有43万人围观。据不完全统计,当日天府可乐直播间涌入近100万网友,店铺销量暴涨30倍。宁德时代和协鑫之战2000亿锂矿花落谁家?1月19日,协鑫能科午后直线跳水,股价一度跌停。据报道,对于股价闪崩,协鑫能科相关人士表示,也不清楚,比较突然。同时,该人士称,公司目前经营正常,没有未披露重大事项。资本市场总是敏个人代开发票,2023年还能享受免税吗?一次性给大家说明白!小规模纳税人3减按1和10万以下免增值税的优惠政策出来以后,很多人对于个人(注本文特指自然人,下同)代开发票能否享受免税比较关注,今天就给大家简单聊一下这个问题。我们都知道,在202022年云南GDP为28954。2亿元,同比增4。3云南昆明市风光视觉中国资料图1月19日,云南省统计局发布2022年云南经济运行情况。根据地区生产总值统一核算结果,2022年,云南全省实现地区生产总值28954。20亿元,比202去年煤炭大省亮眼,海南今年9。5的GDP增长目标底气何在最近地方两会陆续召开,梳理各地政府工作报告可发现,2022年经济增速位居全国前列的省份多是煤炭大省。而在疫情政策优化调整后,消费恢复成为重要增长动力源被寄予厚望,2023年海南更定A股中午收盘,大盘下午必须回落!否则节后行情会充满波折上午大盘高开高走,截止到中午收盘为止,上证指数上涨0。54。不得不说,今天上午的盘面走的还是非常强势的,虽然主力在用券商板块压盘,但是怎奈双拳不敌四脚,北向资金持续买买买,一上午又
欧洲三国在上海联合举办旅游推荐会2022年12月5日,罗马尼亚总领事馆在匈牙利和希腊领事馆的协助下,于上海市汾阳路16号组织了一次招待会和一次钢琴独奏会,以纪念2023年罗马尼亚城市蒂米什瓦拉市与匈牙利的维斯普雷张家界元宇宙送福利看阿凡达2可免费游武陵源三湘都市报新湖南客户端12月16日讯(通讯员邓道理全媒体记者丁鹏志)阿凡达太远,张家界很近。12月16日,值国际大片阿凡达2全球公映之际,电影取景地张家界武陵源景区(张家界国家森林可控核聚变,终极能源咫尺天涯据说,前沿科学领域有则冷笑话,大意是可控核聚变技术永远都还有50年方能实现。事实似乎的确如此,早在20世纪50年代第一颗氢弹试验成功后,对可控核聚变的研究就已经开始。笔者年幼时所接RISCV全球出货突破100亿个本田计划将广本奥德赛销往本土ArmNeoverseV系列服务器IP无法对华出口据金融时报当地时间周三报道,软银旗下的英国芯片技术公司Arm确认,由于美国和英国不会批准其技术出口许可,中国科技巨头阿里巴巴集团将张家界国家森林公园多举措复苏旅游市场来源人民网湖南频道12月15日,江苏游客在张家界国家森林公园游玩。吴勇兵摄围绕三个转型,聚力三个创新,复苏旅游市场,着力打造世界级旅游景区。12月15日,在张家界武陵源风景名胜区和虎豹家族又添新成员!东北虎豹国家公园监测到幼虎10只幼豹7只来源央视新闻客户端国家林草局今天(15日)发布,东北虎豹国家公园日前公布最新建设经验和创新成果,园内自然生态系统得到整体保护和修复,支撑保障体系逐步建立,野生东北虎东北豹种群数量稳解决激素脸干燥缺水,你需要做的还很多解决激素脸干燥缺水,你需要做的还很多面部皮肤紧张,忽然染上激素脸,这样的朋友大多心理有些恐慌。因为激素脸的症状是有灼热感干燥感有吹弹可破的感觉,这三种感觉都会引起非常不适,所以容易经常染发会致癌,这是真的吗?研究结果公布,看完就懂了染发,现今已成为家常便饭的存在,也是一种非常流行的潮流趋势,无论男女老少,都会通过染发的方式来改善个人形象。爱美之心人皆有之,在这个很多人都做出了这样的行为,只要你有需求,都能加入彩绘贴片?清朝的美甲可不止这些!在看一些清宫的影视剧时,我们经常能看到后宫的妃嫔们戴着各式各样精美的指甲套。这种装饰品并非空穴来风的点缀,实际上,它真的存在于历史中,并在清朝宫廷里风靡一时。这张照片中的慈禧也戴着作为汉室后裔的刘裕为何定国号为宋,而不是汉?前言国号不光是一个王朝的名称,还是其最具代表性的象征。新生政权的国号历来都被开国君主所重视,一个好的国号可以提升臣民对其的认同感和归属感,这种影响虽说看不见摸不着,但是实打实地存在两万字三十图二十三问,搞定RocketMQ!基础1。为什么要使用消息队列呢?消息队列主要有三大用途,我们拿一个电商系统的下单举例解耦引入消息队列之前,下单完成之后,需要订单服务去调用库存服务减库存,调用营销服务加营销数据引入
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网