From dcbaea02d3d03f0c15704f2d4c5889abe47ff7a9 Mon Sep 17 00:00:00 2001 From: Michael Sawczyn Date: Sun, 29 Aug 2021 08:43:19 -0400 Subject: [PATCH] https://github.com/msawczyn/EFDesigner/issues/298 --- .../CustomCode/Rules/ModelClassChangeRules.cs | 8 +- src/Dsl/DslDefinition.dsl | 2 +- src/Dsl/DslDefinition.dsl.diagram | 152 +++++++++--------- src/Dsl/GeneratedCode/DomainClasses.cs | 2 +- src/Dsl/GeneratedCode/SerializationHelper.cs | 4 +- src/DslPackage/DslPackage.csproj | 13 -- src/DslPackage/GeneratedCode/Constants.cs | 2 +- src/DslPackage/Parsers/EF6Parser.exe | Bin 9387697 -> 9389745 bytes src/DslPackage/Parsers/EFCore2Parser.exe | Bin 7381062 -> 7382598 bytes src/DslPackage/Parsers/EFCore3Parser.exe | Bin 9585604 -> 9587140 bytes src/DslPackage/Parsers/EFCore5Parser.exe | Bin 12819021 -> 12821069 bytes .../EFCore5ModelGenerator.ttinclude | 9 +- .../EditingOnly/EFCore5ModelGenerator.cs | 6 +- src/DslPackage/source.extension.vsixmanifest | 2 +- 14 files changed, 99 insertions(+), 101 deletions(-) diff --git a/src/Dsl/CustomCode/Rules/ModelClassChangeRules.cs b/src/Dsl/CustomCode/Rules/ModelClassChangeRules.cs index fb54241e9..ed4495af5 100644 --- a/src/Dsl/CustomCode/Rules/ModelClassChangeRules.cs +++ b/src/Dsl/CustomCode/Rules/ModelClassChangeRules.cs @@ -144,10 +144,10 @@ public override void ElementPropertyChanged(ElementPropertyChangedEventArgs e) if (string.IsNullOrEmpty(element.ViewName)) element.ViewName = MakeDefaultTableAndSetName(element.Name); - if (modelRoot.IsEFCore5Plus) - VerifyKeylessTypeEFCore5(); - else - VerifyKeylessType(); + //if (modelRoot.IsEFCore5Plus) + // VerifyKeylessTypeEFCore5(); + //else + // VerifyKeylessType(); } break; } diff --git a/src/Dsl/DslDefinition.dsl b/src/Dsl/DslDefinition.dsl index 65e59e5fa..18def18df 100644 --- a/src/Dsl/DslDefinition.dsl +++ b/src/Dsl/DslDefinition.dsl @@ -1,5 +1,5 @@  - + diff --git a/src/Dsl/DslDefinition.dsl.diagram b/src/Dsl/DslDefinition.dsl.diagram index d475684b1..2de624d90 100644 --- a/src/Dsl/DslDefinition.dsl.diagram +++ b/src/Dsl/DslDefinition.dsl.diagram @@ -4,25 +4,25 @@ - + - + - + - + - + @@ -32,18 +32,18 @@ - + - + - + - + @@ -95,28 +95,28 @@ - + - + - + - + - + - + - + @@ -125,16 +125,16 @@ - + - + - + - + @@ -164,40 +164,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -233,31 +233,31 @@ - + - + - + - + - + - + - + - + - + @@ -333,61 +333,61 @@ - + - + - + - + - + - + - + - + - + @@ -400,25 +400,25 @@ - + - + - + - + @@ -430,28 +430,28 @@ - + - + - + - + @@ -464,49 +464,49 @@ - + - + - + - + - + - + - + @@ -519,26 +519,26 @@ - + - + - + - + @@ -551,54 +551,54 @@ - + - + - + - + - + - + - + - + diff --git a/src/Dsl/GeneratedCode/DomainClasses.cs b/src/Dsl/GeneratedCode/DomainClasses.cs index 92ee111cf..ef0dcb714 100644 --- a/src/Dsl/GeneratedCode/DomainClasses.cs +++ b/src/Dsl/GeneratedCode/DomainClasses.cs @@ -13526,6 +13526,6 @@ namespace Sawczyn.EFDesigner.EFModel /// partial class ModelRoot { - public const string DSLVersion = "3.0.7.1"; + public const string DSLVersion = "3.0.7.2"; } } diff --git a/src/Dsl/GeneratedCode/SerializationHelper.cs b/src/Dsl/GeneratedCode/SerializationHelper.cs index d1f25d2d4..b11b99c2e 100644 --- a/src/Dsl/GeneratedCode/SerializationHelper.cs +++ b/src/Dsl/GeneratedCode/SerializationHelper.cs @@ -1168,7 +1168,7 @@ public virtual void WriteRootElement(DslModeling::SerializationContext serializa // Only model has schema, diagram has no schema. rootElementSettings.SchemaTargetNamespace = "http://schemas.microsoft.com/dsltools/EFModel"; } - rootElementSettings.Version = new global::System.Version("3.0.7.1"); + rootElementSettings.Version = new global::System.Version("3.0.7.2"); // Carry out the normal serialization. rootSerializer.Write(serializationContext, rootElement, writer, rootElementSettings); @@ -1190,7 +1190,7 @@ protected virtual void CheckVersion(DslModeling::SerializationContext serializat throw new global::System.ArgumentNullException("reader"); #endregion - global::System.Version expectedVersion = new global::System.Version("3.0.7.1"); + global::System.Version expectedVersion = new global::System.Version("3.0.7.2"); string dslVersionStr = reader.GetAttribute("dslVersion"); if (dslVersionStr != null) { diff --git a/src/DslPackage/DslPackage.csproj b/src/DslPackage/DslPackage.csproj index 6a3ba6d18..1b7133411 100644 --- a/src/DslPackage/DslPackage.csproj +++ b/src/DslPackage/DslPackage.csproj @@ -273,18 +273,6 @@ true - - - - - - - - - - - - Always @@ -413,7 +401,6 @@ true - diff --git a/src/DslPackage/GeneratedCode/Constants.cs b/src/DslPackage/GeneratedCode/Constants.cs index d6e43abe2..ec8ef72c9 100644 --- a/src/DslPackage/GeneratedCode/Constants.cs +++ b/src/DslPackage/GeneratedCode/Constants.cs @@ -18,7 +18,7 @@ internal static partial class Constants [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] public const string CompanyName = @"Michael Sawczyn"; [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] - public const string ProductVersion = "3.0.7.1"; + public const string ProductVersion = "3.0.7.2"; // Menu definitions public static readonly global::System.ComponentModel.Design.CommandID EFModelDiagramMenu = new global::System.ComponentModel.Design.CommandID(new global::System.Guid(EFModelCommandSetId), 0x10000); diff --git a/src/DslPackage/Parsers/EF6Parser.exe b/src/DslPackage/Parsers/EF6Parser.exe index 44713f90472fe345b4b94956d7ab5a43c2adc70c..049ca15cff9e6ef2bb2d0a4b0c18aa2a233e7051 100644 GIT binary patch delta 22197 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

RaHb?n8}G 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 B{Z0S? diff --git a/src/DslPackage/Parsers/EFCore2Parser.exe b/src/DslPackage/Parsers/EFCore2Parser.exe index a9c23fa8f45d2c469993d52abfbf1e5ccffe1ae4..929655f0828674a538e62f7eb4a6e5f1ed915658 100644 GIT binary patch delta 19537 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 Dt{&RX delta 18007 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 diff --git a/src/DslPackage/Parsers/EFCore3Parser.exe b/src/DslPackage/Parsers/EFCore3Parser.exe index 28330c618a369590d69ee8b1779569ad3a583b0f..02b06d34d389f768713eea8198cfad51fabc449b 100644 GIT binary patch delta 19876 zcmb_^33yaR*7m8o-M4Rdx;wpO>5u>k5NwhV5;j5BunHmyuBa#h8H_9q34(~w9dW}A z6V$7MGaxu4iX$ivg5rQWXq-V|oDpY41h>&q`E*=H#}WSboO=Voah~sa{{L@t-dpdf zQ&p$xR@L1OzIaoM=f#yRp3L=Xi&hKN(5-rbzOirK=JDWS!8b>KCpwm?J*s+JNKR#v-dxytMdl-BYJ-% zk%CE_$Sht;G&E?>Yp2UX@hXERA_IR>vd{gs?pGYNvV0>A*lvVe1o1-peFreR8#(1; z>|gy_j|qnQJ$yp*4K)5x`T4HF$j9}Vbg0~u6DlWv85*rpl!UeBMs%{AC=f6!Jc+FG ze4VNQOLYeXtqMb5v#dU==L)n@QAW2FuARL;ae5 z23wEVrh34(!hgC>VblV9EA3Ao*WJ^j(Z^&p6v>`|a+P1M^58^3r+R_s-5((>?K<8@ zQ5(9AmQ%fveN{V@4wRFL&Y-mbHF4v}Zz#nvV0xD1p>>_?16wE-Gs`(@#C=g;#d)+8 zgKMWY={!aD4V!e&1cvh%Dv}IOJB+uqlRy3<(T>IO{+SO0!$;xZ5ctV$A#0oJLe}$p)@whjf4@->5 z?k9A0x3R2EO@by!4VaOEkl&K?lDZfqHG$z00NEX$)OkI~N?yh)&P-xXm~boVam=Q$ z8MDc3QOnGp@}w>tMyPT+>oAdEVafDL&S1?It_D-lbToCWv1ID!==ddr&5yerRL&z+M`F09Xp6w?enGPvHpM=_mxxB zS4K5OvSbL$moC8&+yz0+^5en!E4U?tRgZ!JGLjdNy>yH29$bQ))&aABvqhI?pXl?Y z+=%_r7Tqx)N^hHiuw<3RO&O5%|2iO1Gc^@;rKSO7n4J-x&-G&voYA~Wn3epmW5-Km zu{)NjD`CB~0~Swdcl+U|^yswZk6J$-P3uRaxqzEMcV#rM{?F0$V>EdeYCD`OFhDQ0 z8BX2?AH~4>c}-(=VNL5LrId{=MK8u$$7)vCpX^z`(V0Rl@UBoLuSLVo4i~TT(l}HX zu+>(bpQeT-NM{)`1A{)x85r!k0RoYkmv%`8$5f+BuER08j5XJb#z@}4VhWa?S=eOq<0CZD~1tF9YFK5ZnizRXm!6avEpGE*ys zNnhes9=gC8nP|glG7`oTjGl+=Nl#-RMd!PLnTuKH^u^}Vp47cKm`BY4DARBs(n(xv z%7a$_4=}C`1ECH1%_Z3FJ>>T<=A%@RTm{o5<)E&TYj2ys8u@#%D3$EqRmlgyuVRjs zm-;yfom7x(a>n}?l4n33i1LpQon>cU^-_7ds%r_!>^zTnyH6zh!4l+R}t2ZnTIE|iBa!?tcrZo zy-c} zwR(cBZ~?)}pSoR_4h&g-o+LT`)KgFW6e70>=O=f8q@D*P zUjSrq<~*3eavFPrgn8i)#(4>t#uD6(crefTka`i;_3vUAPyG(5xF_nVuyW#FZ@;4` zZ9n&nZePM6*JD9pZ&*|?TI{H)$k4Y)wf}^nS_aOjWdy?<* z(HZ?JR2b#IhWDWim28;~p0xABlRN5u>`Q)55{;Yi0Uf$OOXuGoOn!_;>aT#k zRlghlC;txKu`=}u4yjMsf#hev_H_anxPZ-Vj!NPg+0v4xm%Gbiq&s2TM% zz-e63>EM#M-|1sC?N1$osWZxjQNP=@gO|huu0^1YK~Xf&YA_(4MbWHy(6tJ-v5E#$ zU!hLqMT0!iLeWt7H`_(CT8m=ZM18zmF$2>{|M8QCl_qBm$FJFaI#?19yY+|L)Srlk zk5@$pL%8AL6+4fM9N;q9Zkg;hWeTF%$ICbacMt=Y8X(ucym$n2IfA>KyZEdUO~5L| zbfzgdmf+YQv$3td(beOcbdvr-Fq{SI?dmnS2V!EHF7}b*zn>xX zCuE$~rU2hwjf6hVv)2B@PTc_;gsElSW*tm)CHw20y5#I)!ZSkxMyiuee#e7R_8&V9 zFR-$%ZZ;MZFJ8^PBTSSiEyV?d?=G-LJCQwpmo7+W`7*3@vSblSAtg6|xl#!Jdt|Y9 zBAsD^=Ou&M!44OnDDj4F)(;EN+@+kE`W~){d1b@Dk<9!6C_C=*Mb3@N-eTKd>iSkSR|RiR6u7N5=XkAUkt*q>?4VX58QX}QXf$X{$^eH%>t=aayFX(YyT3K0N znb3x_hRgaU11MvpvZUmzr=8br5KeCAr9=swuRmdr?0nAr`nowY8gPc_Q|zT{;8*AK z&Y{~db+J!V=h5el8G++!@Y4hK*}Kl}YTx;yE>?M4H@~QrGEF)+8jRRa{7%n_>tEYzUeXEsxtH|k>A}7dnpQB(hfOa$%6ERI$U7F; zMX*-z4G(L^NcvkzpNe!ftqu+LMQL>QnZQngiN3zn;<*?TOVLE&3Uxp5Vq*`mgNM`O zJ)B-B=`~23G~ahYT8drd%cG~&rNHZr8Nd{Af!EYrq*oc&0Dmr;qoR35G!^=K=nrG( z&7*IPJAh^CUf@OgUY|*4<~|54Dfs1&()$vRLNnaI3D_H$Hff}>1*EU_w79Z^E23S% zVZhUiG1znuMRHm&LJ#vs0ajSJ-)GPPm;JfjexHY|PEOuc(NjHMy4Gc{Sodj@Rtvi^ zu{U-{X(;?1Z@}QRGOgO!kh*Z^qR0`Sb@_hK_9y8 zUbT)2=!nZMH}+$%`^IIbc-B!Nh5NGG%jg2nek!88zPQLR%^##h9cDt;PzQIb;A6)i#T4;5n{Vr3U z+wcbLZI|^@I2{x|6*tJ-{4~ANs-RNP)-&3jDupehMs>f{orbl^tE4mByodCIRwZ55 zCa(uw;pRr;%1(qwprD5*kz0LPOB$b{n#~U zxO-8KFz3YdqV~d;;lduFUR2(1>w-Ocy-FWedt;sGW1u3x-WyBOX8L{3Fg%Fy{uGqG zDk#$@hxW$iQB*&lSV#r>+q@OX<=rbtJe`W%+{gW!q2c{3NIbE+xcZwCe}jg1xFGQq z3(7thOv?-l%61o&=@lg2^n%2bt3(fqgw!tDQxI3(^f%rDRibwVN>vLzZ505=MtTBs ze5V2@77hXCCq}Cp9q~_8AERMK6Z9F0h3X4>GPFb~wLNFFst|`-=vm(i=+kqfOH@=3 zFIcI1Q>b7gjGT;nVoTH{j7Nk9N`VRb!tCeNK8#ZYL-=m^Wi&!RQBK@lS)DR-g;i#B^aN-J(x} zFYIZBZjlC*T4(mu-_gYINIgROQJ@cFz{k}$|&nhVT?(Z^I>_z((s3LgVL z*AA!;#JA{6r1zH#Ms@dg?;`g=L4-!o+uqOg7y9gi0`;AK5*O@Q;%I+ytG~Jt4fI#% zqUKp*sSF;u`BKldf@9QQb1qC9*VF6fEW>XsOe`>Jq;QQI&fckM@VbR2B??rHx&l}J z7JAR>iSydxyBU_>2a{f2zl>9dX68K`oo<2jgKjkyB?bFbGV+IIA(@A z1}6&izv7P@w}}(!yW~)#K8YWM>9G921AY15Na34}MdHvRacGe^G)ATKvplP%R8&6_ z?&v8nI{8oalo-{~!Jhuc3t6K)i`2l}Tv~)v9>E0sFtkxE5+@3b%{dc1>!s`>)g^b1 zXJc9hr$)}=1Zk{=sYmE`6Z$6Cv9YkXNjcNDAl%hE&sd)*2R;$6 z_Wr@?pTW6Js4YUvRf%@KiB&wcjWF!%<(oFBhrbb-UFgquJ(m)@hWw+pb0oT zdxctV47Y6Wa$}9PP&FC%1D@@u}4I zK5YyA*}GP8H`c0`urAo<5G*GqKJqphzepVMZiaJdMcZ&V=G|<(8;HJg1~n~W zn%j&6@t)>#V{-OF6dq{yGh2*L!h=ku;_aHeb;hQ4!_9rh>;7@jzZ<^L81uXn zH5m)qO*Yr6HzQNc&BkL`9m|nhZ+_)=bz$fx^FE|in!Z5BI`a!PJM@(KZ&uO2Wz&VH zg)f;cl$*WB{KD8-__|rEKF9oDBpcKOeJOGqQC8v7!|SEMcqZ^y^E=~B>oBUmJhVbJ zDkBsj39C2QuT1bF|>*X1*S;4PSP1kuMu2_S25rF*U?Hiv<{c#V&4mb?+F@;HJt^A z3r-VUCb&-U1;HLVBnvv(Z&~uGvhv#peBc6fYOTEjy&wF3>UTy9$U$j@ffmbO<%$rarf2QL{ zALsW^^C`chbG{vl)^|ZJAK527+{(}Iv+=uWxT{VhIxLA8U$Gc8HvX+==Dh2uNTol{T5^-)fj_lqOl0_me}kDe-r#oqmQcg zjHFu6BDwp4`|36|0R-j!u@;dG^c4^owcJXXxl;?IopS zwccWiHRc+{qHrB-&XSXkkWqxR1 z#O_Zz#b-IbWbVfCKIvU7b2nTQb+|RN<8d?7890A2d_;k`IC-D_xiSjU^Dsi_NwjfZ zfU_H~f^(0dB_?_-$_mUNgCj&6hF#)d3u zQkrj@zPpY70SkWM6Hct^gwH$NYIf*oL}?zrv`n0Nx&t{i@8Ic*na6Xq5$7~OI@Y*0 z)(91HFe#=>72#NB7fuErh-W*x`a-ekF4>GupwIXVYaPuzl^e}$Q>3Hluz%yI2Cz#@7CB*3PVWOrb~?PI>DzM-gbS&WcQ@rq)I`V>akG1+e-u5Ai8@ z2%B)Mk!z1FicOFB{ITA#%$_g?Cex^O5AA_H?$cni?Zgb+;||mwXH@pcB590eTI}T> zV?uhL<-_ShC&Rp8GmU~RCK*_lVa#^U@nFGgPJf2U>YT36cQP{*Xhat#oj0NHI2eHh@=~!kT{=oQPiSvh1By4z#HD(|$ z^~_?UziWG|g-C?pR&0*f~SI1=IzK;rUu# z&ktE}U8Y4A>o6rB<0-;t@gW0m#d*Xq(mXINxJ__QB{phhVWhbqnLm3;S?$p^w1cr@ z)pvqFK&4`7j0Zl>VHRSo;B2D0$8f;d@PXZM4jY`qW?wPtfon3u*d0f|0|zXwu*2~7 zM#kH+T#vk#G|TvdVNuvp99Mx~2m99kp%U#=cE~aY`*Bz79Wj0CRWt0fdNfb6AGeG< zE!fJ1Z|fkxF*=xc&A5f%lREQk)-8f;xdk%Ip8IlLzIiKA_t|9E-rlbyQdhla%l22o z<9_w?i|4G&&3?uXR5zE}p*$nzw$L@ts48}?W}V_%q4veE?V4&Wc>bkNAFExz#@_r! z@%Ed-2?OGRcp)al2eBZ2NC1)r2|_}UFeDoifkYuONF0&_$%W)W@*xRG0i+$I5K;tb z59t8u2q}h?KsrG>L%KjpAzdM-K$4JdkTOU)qyo|%QVHn+se)8PdO~_ZdPDj^`a({H z^n>(=oCX;H83-8!84MW$849U^41)}ZjDU=UjDn1YoDLZS84EcBG7fSkWIW_7$k~ty zkcp6UAm>8PgPae!0CFK@667Mt#gI!NlOdNvE`v;g)Iz30ra>-;Oo#joG6Ql2qz-Z= zWF}-5WHw|DBn6oZnFpzdG(hGNTvKVqLWC>&`Bn`UezYmae&_RZeMY8M0u#>*>>Y;8V#o-4 z?!7m3^m~xZK+Jo-IV*SNI>D!^h;{m=#;~v{A)ye5N@K=A6KxQzx%q3ScK^u}Yi-~s0947Ei zaxP(lPk}-%Wpaf}YMIP*2^uw1vvJ!mcG#Otj^;8EQP>(BsPQZ*&p8MSalY$uL}PDl zNCXi_I3|r09yJ0w$;eSM_M%mh!k1DkUh&a)R{H>7R?Lv)j`9>0ZidoS$t&{8s zzJvieW+hM&#{;3L7)8Yaj*eGc3BPtlU-4L>lh?o`U>4tw(ib^3rSOats6C3noVw1iH7chof^HO+8A_)kQpXX0iym z^P@&Z)82ml>!#EBv!e9GKDOb?f%c`}G+oLc4@FgW5DmSAO5DP zGdpk|w{cRpS>rlz4riX!Ytgi~2mG_?^e{^E#C1#CP5*4lkDp}Bb3EDJ-tHRnGHErA zeEVZ#UQsaa|83J^On06_!*PbOcK+|?HI}oM*?VF-Z96_=lI)qmF`UlS?Z29vlHM4p zOYxNNs&5o^tr#=*x>_fv31jSarLzx6gp|81E^u}OBPE@cl`=vnc~3An+R*IPS0{N> zFj9=pQtGUeyfqjcuqmo^pdzA^3q;3wRGnB`GBR7>SL@>9PRP#+OL&s=j@i0f6e4)3BiuJRf9W7Dn(722 z#LsocAD`v;|IG6>QKQfIzE(h;OMxa(;WXui~bK zkXCNKz-epmDEOU3_X9uK7z$%!33PwvU|!UF6*d|rv0qlym#T&yK{Nh(?1ppevDD{U z67yG&onfx5?zmO%)c}g()1Hb@EtcKAH0Cg2^qr-MF?EMGC)tbJ2|0o4$wu_3+`F_7 zbgje9ks-MLIdRo`DXy~!ug&kebTkr2&6`l5p|8E~`=+vK{ZXnkGX{DI>*!jK(=pc+ z=bTk5rxxSG_Xbf)1oZKLD}a50&!@ZtEDt6EZPLX-#=i$PgtG}D*U)#*`en$ZErNFo z4hym-EO?6G2+=vK|ZqL*r4yu7Ed<#vVaqCLI;5 zk8;LzI#rqUuV^e{(vkpcei!8Qb>Th0n*yAE-N*Vf#L}bKp;^S5NrIMsSUIJ zD&pnfFW~nl1`Hhj!+=Gs@3YTz z7zVm7^nG?0j1=casBiT9?8%r!_zD2I2ziq!7ccgi-5z9Ch}$7%*Tlb1gLb4LLZ6m` zNqhn3%$uZO1zjQyc8PO?{b?y;Ga|Giz|{-_V`p~6IBy8uAnXjW91ezRIc!hCb=CvtRe4W;FI2Ez?;3dYJ7_M&nhnPu0*yW6{Wmf z%&{3F8mF1w;>6#jYA4sxE6w)LE5?PMdBF1pzZ8cKi2hvZhU0X)$h!(g?|9b%7fD7R zsq|6vQD_=9_x^s-Uo869L|-AAcLZ+}SDq2)CP?}LlxiK(!Ldg%mOTTEU4XsmAJNBw z3$veOo3spjMPR!aF%FAuKVG;>JqOJiU@x_Tp4WY8FYVSG#qbZiwajMuny5+=Jr%Ut%?&??*#-0HH= z@m&c?p&h9Fth@z1o6x^&`l z_gI6{pne)E^v1+$EVwKha}vACVb(v;!z|kDvcbZ(xokB0n?=vNtkSm%JKZZT8;H+z zL3-U~H)pTHjlx?ldmuX<0e#=4&xThai275P?F&c1zINHU(QOFr{J~|@qPbuut}Q(H z?V_u&D8nvGMk8SPE;}2JBD~pUm%>qmHoEMhz_v8SsLG{t0=Z!QUDiAMYrM6raoO-} zT<&SC%VtL`BZnrs?6yc0>|&QyM+%Kxn&z^zB3-~{IZVbkkFIm`cns5dbc;)Q5c6oI z%Xkp;X_d=(5c6rh%XknIw9#b`WJkcBa@p?eN~3^wxNKkcsbITZ);F*UF;B0$Yy>|2 zwoB7~mmbL8hK=zZmwl9-3-*!A_}mv!7u-zoaI@b~{c{P;FHg+A|sds-gS>G539@7&C}Xb{&c z+-h>(&1f)*n<`;47TqX*66@nyo{o*C8x3;V6l^rzXq3x%K9$jUm+^cmqYL=9n4949 zTTUz8%*(QCjB;A#vYFXq!PdL%(a5<*1#NWMvysVQPr2-BG~bAG-<@{5Y%H3u zq*q-w4b4~5elWCuqm_+FT=oxNy-`IKE>qS*us$wZ zgIcO-kju89`Dz;FvTMP=6%>>Je5hjzFugvHf|cDrmQHu=8vs>_yOlkZFWg{5z_Oze86(mQTu z5q7;(>7!PLg8k@omzASnKl;vP#a6x1pA?=acno`BEc(0gqR#c;G`d9c_|n^qHQ!W(3|$rpm={O zQPuI0(C}>Eh81uwZbH~HM{t{95v@)`RiX-gDd3sW`GVJCe`nJQ!QO)Vi1)}AJO@3A z(83zrj0_b0U+@t70#&P#p%z3F^3|_Iofp~*Y>vJGn~CZjek@t7Kc#*%8DS`@7WJ|7*g z#))Pibqm!YD06i9!fQ-GbR3Rq6VfxT!RZ~$Ek z98OKZGiWXF9NGiCSa2G>?nzhDO!@(;2C}@Bw3u?eL#2T!f*HXzf;$Cwxp*s$^B$7) zVHa6Lh;y2Xf9l{MYf2>^k9 zo}`tQ#lMXy2wU5CB4f<)*O=bVHa6L zhB)COYl&XWhC9`B5T%2daaAB*(vE=F0$s3qz}8u z8uExkF0!Ur(j_jkW+>9>sk%l~H6B(?k#wz#tjS2a(M8s*k@Q*@S+i5pyIf?=AxR&0 zku}OI4tY6UEa?))v@Q|VP*K&m$VO8nUF#xiGLmj|ku_^1z1Bt6?3DB_7g=*i(uZAS z4VmJKU|N~1Di%`WB5Q_9y2eG;Op$c0i>%2=y3s|}td;aysdJ~Kce%*9ha`R2Mb=Q- zC%(AIs$xkG6`UfN5nLm9NRTWpRV+AEaEf3?aE;(j!9#-N7kj~>f>Q)DewqJkgzOYN zBuD`+FhwvUxJGcNAZ1B)f3|`=NqU1T%tbf-?Vi3OOW5Au$!4 zBA5|eBe+xWkRXM{3BjR)Qv@@DYXo-+9uidYZZm>g`R-JM-O#3AP_9z*?U|A0lJt`X z(R+Tz$uY*SLX3Sy(=ov5^*+X@vKjvzW}Fe-3ap57daA`(A7IVs>}P;?MqUJ-6WIg& zi5jxsfc|u;`P1yJX^^&!-4o>MoW?$s20oSsoQfR%cEyd&5X=g_gYS^wI)Kia%Z=Us%C-dE6dc)fNf?Vt{7s=7zLJk_3?)11@u8TCD0u4>$! zwEmt@**;EZDOxO(>cu>1NM{SM&;XIy{C)pOvmOD`{?*l zrrrMX#kuy}_w{AJDQ=EhTjR;*_jKgB3lHSJ^T_^D*ELo4*y!u@xPA0+rk!0}-fX22 zilUitFhoE!d zfF&J1DTayTonVJJc|Js(Lk`CTp{j7)m-feIBhsu^amdxY*j2Gb92^sy&Dq*38D0** zxlbZq?zT8`roDkMo%UfPiU2xzA1ASRi2a_2Vnqm5R0x%cW;P=gM&!~G74~!Z;1Z}C zwHda2Zj=681WVn3up1}LsVI?%aNOGx)dAr_K#r%m0nu+Al*AS`hO-f5#!hh#=X0zf z`jlBNQCu8lwjBNhe4c1BT800TJ_HnnqnRCkILbv31&BDGFvnrupu^e|N0^*;qZQo> zwY|6LoN{|hMe~D~V9bg*e2ItJJqF!l!aYXZV~$})lN|eGihUTg3ep=g6zYKi_S5Mr zm&h!)H+66BnC2E7=Qw5YFmYqYRb5(D!Q-l6t159^m1tE(j;kWAs+{Ah9Gs$PlFwN* z$w{0|dwgYc{?s}TVFCmIJVrPjcz@0#hy|wH;3gwUVTi^*91{1PBTo)|`ePa~Pse`~zdo{X=ac^Wj@FLRmu+~w&kf;iYbI>z z{rN3vGxLj2@60(iDeHkRfA*ID%-_6v?RB(e%z2lLfBD#5H~ecYM}c`(K;c&|#hK{mkP19nWZbYr>XIm%jb+#9>?K-ZQ%Y#`k}A=dIm#exhd| zG?MeT72p42*AJrKu0C*%&7MTRefWdcsH=MLKh;8plO65r&-IO(ijO!W+_+f-F zNIlPPr`Jxk4?lEHwf*<%=Bf71H;Ui4H@sUQy=X@-Xe!-0WzEDt zDtpt5#a1CcE>f_re#SLdEWCO~s0 zj|Ml7RWI4ShBWtAf3{~2K|>eWzZfDW2bsNXM}{`{R#(|0hc;KLW_$inG<&!GI4k4! z`$L=is)y{t8dQCjJ*B3(m-?f9S50#lHOJmogW{F;CpD-{+hxPx%OC7%!%(iwzIPZp zc(489F!ZRv_6%>XLe+hSqlM1)<-?mxJ2kG5;YrSO2i?~&r;f*H@IRU)gT~vB4sR~_ EKZ)mEy#N3J delta 18351 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 -ZrH9IDEoBDK_2==4hPxL>D59;I31 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 diff --git a/src/DslPackage/TextTemplates/EFCore5ModelGenerator.ttinclude b/src/DslPackage/TextTemplates/EFCore5ModelGenerator.ttinclude index dafb14a90..989feddf0 100644 --- a/src/DslPackage/TextTemplates/EFCore5ModelGenerator.ttinclude +++ b/src/DslPackage/TextTemplates/EFCore5ModelGenerator.ttinclude @@ -34,10 +34,17 @@ protected override void ConfigureTable(List segments, ModelClass modelClass) { string tableName = string.IsNullOrEmpty(modelClass.TableName) ? modelClass.Name : modelClass.TableName; + string viewName = string.IsNullOrEmpty(modelClass.ViewName) ? modelClass.Name : modelClass.ViewName; string schema = string.IsNullOrEmpty(modelClass.DatabaseSchema) || modelClass.DatabaseSchema == modelClass.ModelRoot.DatabaseSchema ? string.Empty : $", \"{modelClass.DatabaseSchema}\""; string buildAction = modelClass.ExcludeFromMigrations ? ", t => t.ExcludeFromMigrations()" : string.Empty; - segments.Add($"ToTable(\"{tableName}\"{schema}{buildAction})"); + if (modelClass.IsDatabaseView) + segments.Add($"ToView(\"{viewName}\"{schema}{buildAction})"); + else + segments.Add($"ToTable(\"{tableName}\"{schema}{buildAction})"); + + if (modelClass.Superclass != null) + segments.Add($"HasBaseType<{modelClass.Superclass.FullName}>()"); // primary key code segments must be output last, since HasKey returns a different type List identityAttributes = modelClass.IdentityAttributes.ToList(); diff --git a/src/DslPackage/TextTemplates/EditingOnly/EFCore5ModelGenerator.cs b/src/DslPackage/TextTemplates/EditingOnly/EFCore5ModelGenerator.cs index bb130aa13..b800e5535 100644 --- a/src/DslPackage/TextTemplates/EditingOnly/EFCore5ModelGenerator.cs +++ b/src/DslPackage/TextTemplates/EditingOnly/EFCore5ModelGenerator.cs @@ -19,10 +19,14 @@ public EFCore5ModelGenerator(GeneratedTextTransformation host) : base(host) { } protected override void ConfigureTable(List segments, ModelClass modelClass) { string tableName = string.IsNullOrEmpty(modelClass.TableName) ? modelClass.Name : modelClass.TableName; + string viewName = string.IsNullOrEmpty(modelClass.ViewName) ? modelClass.Name : modelClass.ViewName; string schema = string.IsNullOrEmpty(modelClass.DatabaseSchema) || modelClass.DatabaseSchema == modelClass.ModelRoot.DatabaseSchema ? string.Empty : $", \"{modelClass.DatabaseSchema}\""; string buildAction = modelClass.ExcludeFromMigrations ? ", t => t.ExcludeFromMigrations()" : string.Empty; - segments.Add($"ToTable(\"{tableName}\"{schema}{buildAction})"); + if (modelClass.IsDatabaseView) + segments.Add($"ToView(\"{viewName}\"{schema}{buildAction})"); + else + segments.Add($"ToTable(\"{tableName}\"{schema}{buildAction})"); if (modelClass.Superclass != null) segments.Add($"HasBaseType<{modelClass.Superclass.FullName}>()"); diff --git a/src/DslPackage/source.extension.vsixmanifest b/src/DslPackage/source.extension.vsixmanifest index 3d61342be..03a169b6a 100644 --- a/src/DslPackage/source.extension.vsixmanifest +++ b/src/DslPackage/source.extension.vsixmanifest @@ -1,7 +1,7 @@  - + Entity Framework Visual Editor Entity Framework visual editor for EF6, EFCore and beyond. Logo.ico