幼儿饰品瑜伽美体用品美文
快百科
美文创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

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

6月2日 栀璃鸢投稿
  1、前言
  生成代码NuGet包:XmSoft。CodeGenerator
  该包将会自动生成代码,如:实体,仓储,服务,控制器及校验等文件。
  控制器包含CRUD接口:创建,修改,删除,详情,列表。
  参考:ORM框架采用SqlSugar框架生成
  2、示例创建控制台应用输出项目名称自定义dotnetnewconsoleoXmSoft。AutoCode引入NuGetdotnetaddpackageXmSoft。CodeGeneratorappsettings。json配置代码命名空间及输出位置比如:{CodeHelperOptions:{ConnectConnectionString:Server127。0。0。1;UPDPort3306;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。TConsole。WriteLine(是否确定执行(YN));varcommandConsole。ReadLine();if(!string。IsNullOrEmpty(command)command。ToLower()y){varhelpernewCodeGeneratorHelper(options);helper。Run();Console。WriteLine(完成);}Console。ReadKey();
  3、执行ztest表sql语句DROPTABLEIFEXISTSCREATETABLEztest(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测试表ROWFORMATDSETFOREIGNKEYCHECKS1;补充说明:表必须有个主键key
  执行生成实体summary测试表summary〔SugarTable(ztest)〕publicpartialclassTest:BaseBusinessEntityint?{summary标题summary〔SugarColumn(ColumnNametitle)〕publicstringTitle{}summary内容summary〔SugarColumn(ColumnNamecontent)〕publicstringContent{}summary图片summary〔SugarColumn(ColumnNamepicture)〕publicstringPicture{}summary状态0正常1关闭summary〔SugarColumn(ColumnNamestatus)〕publicint?Status{}summary备注说明summary〔SugarColumn(ColumnNameremark)〕publicstringRemark{}summary排序summary〔SugarColumn(ColumnNamesort)〕publicint?Sort{}}说明:自定义BaseBusinessEntity或BaseEntity自定义,这里的主键名id,业务idsummarysummarytypeparamnameTtypeparampublicabstractclassBaseBusinessEntityT:BaseEntityT{summary业务Idsummary〔SugarColumn(ColumnNamebusinessid)〕publiclong?BusinessId{}}publicabstractclassBaseEntityT{〔SugarColumn(IsPrimaryKeytrue,IsIdentitytrue,ColumnNameid)〕publicTId{}summary0未删除1回收站2已删除summary〔SugarColumn(ColumnNamedelFlag)〕〔JsonIgnore〕publicstringDelFlag{}summary创建时间summary〔SugarColumn(ColumnNamecreatetime)〕〔Column(createtime)〕〔JsonIgnore〕publicDateTime?CreateTime{}summary创建Idsummary〔SugarColumn(ColumnNamecreateby)〕〔Column(createid)〕〔JsonIgnore〕publicstringCreateBy{}summary修改时间summary〔SugarColumn(ColumnNameupdatetime)〕〔Column(updatetime)〕〔JsonIgnore〕publicDateTime?UpdateTime{}summary修改者IDsummary〔SugarColumn(ColumnNameupdateby)〕〔Column(updateid)〕〔JsonIgnore〕publicstringUpdateBy{}publicvoidCreate(){CreateBy(userId?。ToString())??CreateBy;BusinessIdbusinessId??BusinessId;CreateTimeDateTime。NDelFlag0;}publicvoidUpdate(){UpdateTimeDateTime。N}}生成仓储EFRepositoryTest引用XmSoft。Core。SqlSugar。RepositorypublicsealedclassTestRepository:EFRepositoryTest,ITestRepository{publicreadonlyISqlSugarClientCpublicTestRepository(ISqlSugarClientcontext):base(context){C}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?。UserNentity。BusinessIduser?。BusinessId;returnawaitbase。Create(entity);}publicasyncoverrideTaskIResultintUpdate(Testentity,dynamicuser){varvalidationnewUpdateTestValidator()。Validation(entity);if(!validation。Succeeded)returnvalidation。Failint();entity。Update();entity。UpdateByuser?。UserNreturnawaitbase。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);}}生成Dtosummary测试表summarypublicpartialclassTestDto{summaryidsummarypubliclongId{}summary业务idsummarypubliclong?BusinessId{}summary标题summarypublicstringTitle{}summary内容summarypublicstringContent{}summary图片summarypublicstringPicture{}summary状态0正常1关闭summarypublicint?Status{}summary备注说明summarypublicstringRemark{}summary排序summarypublicint?Sort{}}生成控制器BaseAppService可自定义可继承ControllerBase等summary测试表summary〔Route(test)〕〔Tags(测试表)〕publicclassTestAppService:BaseAppService{privatereadonlyITestSpublicTestAppService(ITestServiceservice){}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请私信发邮箱
投诉 评论 转载

母女俩的周末午餐,都是我们爱吃的家常美食头条创作挑战赛孩子周末回来就是改善伙食,工作日经常吃外卖,只要一放假就忙着回家,为的就是吃上可口的家常饭菜,我们周六出去玩,在外面随便吃了点,一直吐槽不好吃,说以后出去玩……Net6。0中实现自动生成代码1、前言生成代码NuGet包:XmSoft。CodeGenerator该包将会自动生成代码,如:实体,仓储,服务,控制器及校验等文件。控制器包含CRUD接口:……苹果HomePod2智能音箱开售IT之家2月4日消息,苹果第二代HomePod智能音箱已上市开售,新款智能音箱可在美国和部分其他国家地区的AppleStore零售店购买。苹果客户可以使用Apple在线商……FIFA年度最佳阵容候选名单出炉梅西C罗入选中新网2月14日电日前,由FIFAFIFPRO(国际足联国际足球运动员协会)联合举办的2022年度足坛阵容评选男足候选名单出炉。在26人的候选名单中,门将占3位,后卫、中场各占……把别人还给别人【把你还给你】作者:青青图过去与失去小雪下了一夜,早上推窗,外面是莹莹的白色一片,世界都充满着干净、圣洁。街边的路上都挂着雪,新年还未拆除的各种花灯上也铺满了厚厚的……韦世豪回归泰山现转会,三大原因促使其回归,兜兜转转还得是泰山在中超联赛进入到休赛期后,韦世豪绝对应该算是中超转会市场上最炙手可热的球员了,围绕韦世豪的展会传闻就没有停止过,可以肯定的啊,由于广州队的降级,韦世豪肯定是要离开广州队了,而在……广州四大发明,粥粉面饭民以食为天纵使天南地北食材五花八门烹饪手法层出不穷但总归绕不过一日三餐离不开粥粉面饭而在老广眼里这最朴素的四个字如同神明,是堪比……加速提效全面降本何小鹏即将迎来转折点来源:中国经济网王跃跃有资深业内人士分析认为,资本市场给予认可的原因,在于小鹏汽车通过当下所进行的变革正逐步走出低谷,未来还有望迎来业绩的再次爆发。在2022年财报电话会……又释放烟雾弹?丁彦雨航到底打不打,2大名嘴给出说法,似曾相识北京时间10月15日消息,20212022赛季CBA联赛就要开打了,北京时间10月16日下午16:30,山东高速男篮将迎来第一场比赛,对手是马布里率领的北控男篮。就双方实力来看……豪华车降价潮中,奥迪表示不会效仿特斯拉降价近日,德国媒体Automobilwoche援引奥迪欧洲区负责人JensPuttfarcken的话称,尽管特斯拉的降价举措给其他公司带来了压力,迫使他们效仿,但奥迪不打算削减其电……仅1595元!零刻SER5Pro5800H上架一周前给大家报道了零刻在海外发布的一款新品:SER5Plus,它搭载AMDRyzen75800H处理器,在海外的售价相比搭载了5600H的零刻SER5Pro仅高5美元,但是性能……一次搞懂NewBalance的型号热门鞋型574580996除了当今备受讨论的限量球鞋,近来复古款的回归更是让我们想起那些,陪伴度过每个时期的经典球鞋,而讲到复古鞋款就绝对不能不提NewBalance了,相信大家对NewBalance推……
猪油玉米油花生油菜籽油橄榄油,哪种油更健康?愿你拥有一双自动屏蔽嘈杂的耳朵机构跨境电商再迎政策利好行业增量空间广阔轰3255!库里心态崩了,24中11带不动勇士,三队友成输球江苏无锡留住城市记忆,工业遗产活化成为文旅新地标CBA最新积分榜排名!广东十连胜反超辽宁,北京排第四,深圳第平安夜,睡不着爆款套票开抢啦!仅需54元,赶快来薅羊毛!5G黑科技,云手机有哪些用途?皮蓬女儿晒近照,14岁发育成熟!妈妈带她出圈,未来之星这里是济宁映像哪里生态好,鸟儿最知道捡垃圾的快乐机荣耀10手机
购房合同网签备案要注意什么时候?真爱就是和自己和解放下执念,做一个温暖纯良的人鸡汤抗感冒冬季不得不喝的四大养生汤2022TapTap游戏发布会让希望成为现实王一博没竞争力?一个岁女人给你提个醒结了婚也要保持心理学人看电影1《超脱》一个野蛮美女的蜕变假如提款机少你钱东方卫视跨年演唱会是直播还是录播东方卫视跨年演唱实用的心情日记合集十篇《逆水寒》手游下血本了,为满足玩家,请来半个国风圈大佬助阵热

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找漯河衢州兴义眉山桂林阳泉玉溪简阳山东遂宁永城新余梧州洛阳泸州温州临汾清远营口常熟浙江大连桐乡宜昌