Summary Files Commits Branches @commit @diff @stats
path: root / website / tutorials
diff options
context:
space:
mode:
Commit9c04af3e31e88b96efe48867ea741a4d47ba937b (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2020-05-21 22:06:15 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2020-05-21 22:06:15 +0300
Filesd7f71895c15bf3905c77c66c071696bd0c02a4f8 /website/tutorials
syndamia.com-9c04af3e31e88b96efe48867ea741a4d47ba937b.tar
syndamia.com-9c04af3e31e88b96efe48867ea741a4d47ba937b.tar.gz
syndamia.com-9c04af3e31e88b96efe48867ea741a4d47ba937b.zip
Parent9c273878d43e09a74694142fb542ca21648cb996 (diff)
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.
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>
+ &emsp;// This method gets called by the runtime. Use this method to add services to the container. <br>
+ &emsp;public void ConfigureServices(IServiceCollection services) <br>
+ &emsp;{ <br>
+ &emsp;&emsp;services.AddControllersWithViews(); <br>
+ &emsp;&emsp;services.AddTransient<UserServices, UserServices>(); <br>
+ &emsp;&emsp;services.AddDbContext<AppDbContext>(opt => <br>
+ &emsp;&emsp;{ <br>
+ &emsp;&emsp;&emsp;opt.UseSQL(CONNECTION_STRING); <br>
+ &emsp;&emsp;}); <br>
+ &emsp;}
+ </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>
+ &emsp;protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) <br>
+ &emsp;{ <br>
+ &emsp;&emsp;optionsBuilder.UseMySQL(DataBaseContexts.ConnectionStringMySQL); <br>
+ &emsp;} <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
new file mode 100644
index 0000000..aa7b408
--- /dev/null
+++ b/website/tutorials/connect-to-mysql-in-csharp-ef/images/connections.png
Binary files differ
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>