diff options
Added a tutorial on MySql and C# and Entity Framework. Items in projects and tutorials will be separated by a blank line. Updated formating on some files.
5 files changed, 207 insertions, 0 deletions
| -rw-r--r-- | website/tutorials/connect-to-mysql-in-csharp-ef/connecting.html | 94 | ||||
| -rw-r--r-- | website/tutorials/connect-to-mysql-in-csharp-ef/images/connections.png | bin | 0 -> 10067 bytes | |||
| -rw-r--r-- | website/tutorials/connect-to-mysql-in-csharp-ef/introduction.html | 53 | ||||
| -rw-r--r-- | website/tutorials/connect-to-mysql-in-csharp-ef/preparation.html | 55 | ||||
| -rw-r--r-- | website/tutorials/index.html | 5 |
diff --git a/website/tutorials/connect-to-mysql-in-csharp-ef/connecting.html b/website/tutorials/connect-to-mysql-in-csharp-ef/connecting.html new file mode 100644 index 0000000..dfbba29 --- /dev/null +++ b/website/tutorials/connect-to-mysql-in-csharp-ef/connecting.html @@ -0,0 +1,94 @@ +<!DOCTYPE html> +<html> + <head> + <link rel='icon' href='../../images/favicon/favicon.png' type='image/png'/> + <link rel="shortcut icon" href="../../images/favicon.png" type="image/png"/> + <title>Connect to MySql in C# and Entitiy Framework - Connecting</title> + <link rel="stylesheet" href="../../styles.css"> + <link rel="stylesheet" href="../../styles-multiple-page-articles.css"> + </head> + + <body> + <div class=header> + <div class=article-title>Connect to MySql in C# and Entitiy Framework</div> + + <a href="./introduction.html" class=other-tab>Introduction</a> + <a href="./preparation.html" class=other-tab>Preparation</a> + <a href="./connecting.html" class=selected-tab>Connecting</a> + + <a href="../index.html" class=close style="margin-left: 403px;"><img src="../../images/ui/close.png" alt="Back"></a> + </div> + + <div class=page> + <h2>Connection string</h2> + <p> + You can find many ways to impliment your connection string from <a href="https://www.connectionstrings.com/mysql/" class=hyperlink>here</a>. + From experience, this one works the best: <br> + <p class=code> + "server=localhost; port=YOUR-PORT; user id=YOUR-USER-ID; password=YOUR-PASSWORD; database=NAME-OF-DATABASE; SslMode=none" + </p> + If you don't know your port or user id, just look at the connection you use to connect to the database. + </p> + <p class=tutorial-p> + <img src="./images/connections.png" alt="MyServer root 127.0.0.1:3306" class=tutorial-img> + <span class=tutorial-text> + In this example, the user id is <i>root</i> and the port is <i>3306</i>. + </span> + </p> + <br> + <h2>ASP.NET Startup</h2> + <p> + If you are making an ASP.NET application, you will need to alter your Startup.cs file. + </p> + <p> + Your ConfigureServices method should currenly look something like this: + <p class=code> +  // This method gets called by the runtime. Use this method to add services to the container. <br> +  public void ConfigureServices(IServiceCollection services) <br> +  { <br> +   services.AddControllersWithViews(); <br> +   services.AddTransient<UserServices, UserServices>(); <br> +   services.AddDbContext<AppDbContext>(opt => <br> +   { <br> +    opt.UseSQL(CONNECTION_STRING); <br> +   }); <br> +  } + </p> + You need to change <span class=code>.UseSQL</span> to <span class=code>.UseMySQL</span> (refer to <a href="./preparations" class=hyperlink>preparations</a> if you haven't already). + </p> + <br> + <h2>DBContext child class</h2> + <p> + If you want to connect a DBContext child class to a MySQL databse, the best way is to override the <span class=code>OnConfiguring</span> method. In the override, in <span class=code>optionsBuilder</span>, call the <span class=code>.UseMySQL</span> method (refer to <a href="./preparations" class=hyperlink>preparations</a> if you haven't already). + </p> + <p> + Example: + <p class=code> +  protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) <br> +  { <br> +   optionsBuilder.UseMySQL(DataBaseContexts.ConnectionStringMySQL); <br> +  } <br> + </p> + </p> + </div> + + <br> + + <footer class=footer> + <a href="https://github.com/Syndamia" target="_blank" class=hyperlink-footer><img src="../../images/logos/github.png" alt="GitHub"></a> + <a href="https://stackoverflow.com/users/12036073/syndamia" target="_blank" class=hyperlink-footer><img src="../../images/logos/stackoverflow.png" alt="StackOverflow"></a> + + <hr width=350px noshade> + + <a href="../index.html" class=hyperlink-footer>Tutorials</a> | + <a href="../../projects/index.html" class=hyperlink-footer>Projects</a> | + <a href="../../about.html" class=hyperlink-footer>About</a> | + <a href="../../resume.html" class=hyperlink-footer>Resume</a> + + <hr width=350px noshade> + + <a href="https://github.com/Syndamia/syndamiadotcom/blob/master/LICENSE" target="_blank" class=hyperlink-footer>Website License</a> | + <a href="../../credit.html" target="_blank" class=hyperlink-footer>Credit</a> + </footer> + </body> +</html> diff --git a/website/tutorials/connect-to-mysql-in-csharp-ef/images/connections.png b/website/tutorials/connect-to-mysql-in-csharp-ef/images/connections.png Binary files differnew file mode 100644 index 0000000..aa7b408 --- /dev/null +++ b/website/tutorials/connect-to-mysql-in-csharp-ef/images/connections.png diff --git a/website/tutorials/connect-to-mysql-in-csharp-ef/introduction.html b/website/tutorials/connect-to-mysql-in-csharp-ef/introduction.html new file mode 100644 index 0000000..d4812fc --- /dev/null +++ b/website/tutorials/connect-to-mysql-in-csharp-ef/introduction.html @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<html> + <head> + <link rel='icon' href='../../images/favicon/favicon.png' type='image/png'/> + <link rel="shortcut icon" href="../../images/favicon.png" type="image/png"/> + <title>Connect to MySql in C# and Entitiy Framework - Introduction</title> + <link rel="stylesheet" href="../../styles.css"> + <link rel="stylesheet" href="../../styles-multiple-page-articles.css"> + </head> + + <body> + <div class=header> + <div class=article-title>Connect to MySql in C# and Entitiy Framework</div> + + <a href="./introduction.html" class=selected-tab>Introduction</a> + <a href="./preparation.html" class=other-tab>Preparation</a> + <a href="./connecting.html" class=other-tab>Connecting</a> + + <a href="../index.html" class=close style="margin-left: 403px;"><img src="../../images/ui/close.png" alt="Back"></a> + </div> + + <div class=page> + <p> + Connecting to MySql through C# can be quite tricky. I and many others have wasted too much time trying to figure this out. For that reason, I am making this tutorial. + </p> + <p> + First are preparations in which I will talk about what you need to have for this to work. + </p> + <p> + Second is the actual connecting. This covers changes in code and the all mighty connection string. + </p> + </div> + + <br> + + <footer class=footer> + <a href="https://github.com/Syndamia" target="_blank" class=hyperlink-footer><img src="../../images/logos/github.png" alt="GitHub"></a> + <a href="https://stackoverflow.com/users/12036073/syndamia" target="_blank" class=hyperlink-footer><img src="../../images/logos/stackoverflow.png" alt="StackOverflow"></a> + + <hr width=350px noshade> + + <a href="../index.html" class=hyperlink-footer>Tutorials</a> | + <a href="../../projects/index.html" class=hyperlink-footer>Projects</a> | + <a href="../../about.html" class=hyperlink-footer>About</a> | + <a href="../../resume.html" class=hyperlink-footer>Resume</a> + + <hr width=350px noshade> + + <a href="https://github.com/Syndamia/syndamiadotcom/blob/master/LICENSE" target="_blank" class=hyperlink-footer>Website License</a> | + <a href="../../credit.html" target="_blank" class=hyperlink-footer>Credit</a> + </footer> + </body> +</html> diff --git a/website/tutorials/connect-to-mysql-in-csharp-ef/preparation.html b/website/tutorials/connect-to-mysql-in-csharp-ef/preparation.html new file mode 100644 index 0000000..3e1196f --- /dev/null +++ b/website/tutorials/connect-to-mysql-in-csharp-ef/preparation.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<html> + <head> + <link rel='icon' href='../../images/favicon/favicon.png' type='image/png'/> + <link rel="shortcut icon" href="../../images/favicon.png" type="image/png"/> + <title>Connect to MySql in C# and Entitiy Framework - Preparation</title> + <link rel="stylesheet" href="../../styles.css"> + <link rel="stylesheet" href="../../styles-multiple-page-articles.css"> + </head> + + <body> + <div class=header> + <div class=article-title>Connect to MySql in C# and Entitiy Framework</div> + + <a href="./introduction.html" class=other-tab>Introduction</a> + <a href="./preparation.html" class=selected-tab>Preparation</a> + <a href="./connecting.html" class=other-tab>Connecting</a> + + <a href="../index.html" class=close style="margin-left: 403px;"><img src="../../images/ui/close.png" alt="Back"></a> + </div> + + <div class=page> + <h2>MySql</h2> + <p> + First of all, you need to insall MySql. You can do that from <a href="https://dev.mysql.com/downloads/installer/" class=hyperlink>here</a>. This is the installer. Skip this step, if you have already done it. + </p> + <h2>NuGet packages</h2> + <p> + For an Entity Framework, <a href="https://www.nuget.org/packages/Microsoft.EntityFrameworkCore" class=hyperlink target="_blank">Microsoft.EntitiyFrameworkCore</a> is the goto packet in this tutorial. + </p> + <p> + Although Microsoft.EntitiyFrameworkCore does offer connectivity with SQL server, <b>it doesn't offer anything for MySql</b>. Thats why we need another package: <a href="https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/" class=hyperlink>MySql.Data.EntitiyFrameworkCore</a>. + </p> + </div> + + <br> + + <footer class=footer> + <a href="https://github.com/Syndamia" target="_blank" class=hyperlink-footer><img src="../../images/logos/github.png" alt="GitHub"></a> + <a href="https://stackoverflow.com/users/12036073/syndamia" target="_blank" class=hyperlink-footer><img src="../../images/logos/stackoverflow.png" alt="StackOverflow"></a> + + <hr width=350px noshade> + + <a href="../index.html" class=hyperlink-footer>Tutorials</a> | + <a href="../../projects/index.html" class=hyperlink-footer>Projects</a> | + <a href="../../about.html" class=hyperlink-footer>About</a> | + <a href="../../resume.html" class=hyperlink-footer>Resume</a> + + <hr width=350px noshade> + + <a href="https://github.com/Syndamia/syndamiadotcom/blob/master/LICENSE" target="_blank" class=hyperlink-footer>Website License</a> | + <a href="../../credit.html" target="_blank" class=hyperlink-footer>Credit</a> + </footer> + </body> +</html> diff --git a/website/tutorials/index.html b/website/tutorials/index.html index a02f3fd..447e908 100644 --- a/website/tutorials/index.html +++ b/website/tutorials/index.html @@ -5,6 +5,7 @@ <link rel="shortcut icon" href="../images/favicon.png" type="image/png"/> <title>Syndamia - Tutorials</title> <link rel="stylesheet" href="../styles.css"> + <link rel="stylesheet" href="../styles-multiple-page-articles.css"> </head> <body> @@ -19,6 +20,10 @@ <div class=page-centered> GtkSharp 2.0 [COMING SOON] + <hr class=separator> + + <a href="./connect-to-mysql-in-csharp-ef/introduction.html" class=hyperlink>Connect to MySql in C# and Entity Framework</a> + <p> I have some tutorial-style notes in my <a href="https://github.com/Syndamia/References" class=hyperlink>references repo</a>. Warning: some stuff might be wrong. </p> |