-
-
Notifications
You must be signed in to change notification settings - Fork 178
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possibility to introduce templating for on-model-creating method #695
Comments
PRs are very welcome - does this work for you as desired? |
Looks like it is related to #683 |
Hi Eric:
The tool you have developed is really useful.
Earlier I used POCO generator for EF 6 and I had an opportunity to extend the context class using partial methods. I have come across many occasions, when I needed to extend the partial context class generated by the tool due to the legacy databases were not designed to support domain driven development; for example, missing Primary Key and Foreign Key did not enable the tool to generate required relationships between parent and child objects.
This can be easily fixed if there is an opportunity to extend this context class by manually writing some code using fluent APIs.
Thanks, and have a good day!
Regards,
Mayur
From: Erik Ejlskov Jensen <[email protected]>
Sent: April 12, 2018 7:52 AM
To: ErikEJ/SqlCeToolbox <[email protected]>
Cc: Mayur Bharodia <[email protected]>; Author <[email protected]>
Subject: Re: [ErikEJ/SqlCeToolbox] Possibility to introduce templating for on-model-creating method (#695)
PRs are very welcome - does this work for you as desired?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<#695 (comment)>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AJ3YweNC_rnEeXBapg_9g-LYJC7fGhi9ks5tn1vqgaJpZM4TR0n7>.
|
I will try to simply always add the two extra lines:
and
|
Okay. Thanks a lot for your help!
From: Erik Ejlskov Jensen [mailto:[email protected]]
Sent: April 15, 2018 9:37 AM
To: ErikEJ/SqlCeToolbox <[email protected]>
Cc: Mayur Bharodia <[email protected]>; Author <[email protected]>
Subject: Re: [ErikEJ/SqlCeToolbox] Possibility to introduce templating for on-model-creating method (#695)
I will try to simply always add the two extra lines:
OnModelCreatingPartial(modelBuilder);
and
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<#695 (comment)>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AJ3YwTrD2rUrGUZmaTGn0ZEO9SdLcV2Uks5to2kpgaJpZM4TR0n7>.
|
@mbharodia Fixed in latest daily build (no Handlebars required) |
Thank you so much Erik!
From: Erik Ejlskov Jensen <[email protected]>
Sent: April 28, 2018 3:44 AM
To: ErikEJ/SqlCeToolbox <[email protected]>
Cc: Mayur Bharodia <[email protected]>; Mention <[email protected]>
Subject: Re: [ErikEJ/SqlCeToolbox] Possibility to introduce templating for on-model-creating method (#695)
@mbharodia<https://github.com/mbharodia> Fixed in latest daily build (no Handlebars required)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<#695 (comment)>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AJ3YwdQ6Rxo46wGlKU-n8rMOXE1cqEOzks5ttDnMgaJpZM4TR0n7>.
|
Please let me know if it solves your issue! |
Hi Erik: It looks like that it is not working as per the expectation. When I got the latest daily build, it generated the following code.
I think that the correct code should be like the following. Please pay attention to "OnModelCreatingPartial" at two different places below.
Additionally, handlebar setup stopped working. I know that you have mentioned that this build is for "no handlebar" support. I guess it is still good to have handlebar to do some customization if needed. The above explanation may not make sense if I have missed anything that you wanted me to look into before running the templates for your latest daily build. Please let me know your feedback. |
Hmmm... Tried a diferent approach in the latest build |
This issue was moved to ErikEJ/EFCorePowerTools#20 |
Here is handle bar template for DbContext
{{> dbimports}}
namespace {{namespace}}
{
public partial class {{class}} : DbContext
{
{{> dbsets}}
{{#if entity-type-errors}}
{{#each entity-type-errors}}
{{spaces 8}}{{{entity-type-error}}}
{{/each}}
{{/if}}
{{{on-configuring}}}
{{{on-model-creating}}}
}
}
on-model-creating injects
protected override void OnModelCreating(ModelBuilder modelBuilder)
I like to do the following
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
}
The way template has been designed right now, I am not able to inject the following (or I may not know)
OnModelCreatingPartial(modelBuilder)
Here is my updated template to introduce partial method
{{> dbimports}}
namespace {{namespace}}
{
public partial class {{class}} : DbContext
{
{{> dbsets}}
{{#if entity-type-errors}}
{{#each entity-type-errors}}
{{spaces 8}}{{{entity-type-error}}}
{{/each}}
{{/if}}
{{{on-configuring}}}
{{{on-model-creating}}}
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
}
}
As DbContext is partial class already, I can have another partial class and add required code as per my requirements. I think this provides me an easier way to extend the functionality using PARTIAL setup.
I think the above is already available in EF6 POCO Generated and it has been useful to me in many instances. I am just wondering whether there is any possibility of doing the same thing.
I highly appreciate your recommendation or feedback or any help in this regard
The text was updated successfully, but these errors were encountered: