Friday, April 27, 2018

Flexible Object Mapping in Entity Framework Core 2.0

Entity Framework 2.0 is out for some time. If you don’t know Entity Framework 2.0 is a lightweight, extensible and Cross-Platform Object-relational mapper from Microsoft. It is a new version of Entity Framework which is now cross-platform and can now run now operating system like Linux, Mac etc.With Entity Framework Core 2.0, There are tons of ways to create a table and we are going to see one of that. In this blog post, We are going to see how we are going to see how we can create a field for private fields in the table.

So what we are waiting for. Let’s get started.

Flexible Object Mapping in Entity Framework Core 2.0:

So in this example, We are going to create a Console Application like following.

new-project-entity-framework-core

Once we are done with Creating Application We are going to insert NuGet Package for EF Core like below.

nuget-package-entity-framework-core

You can also install it via running following command.
Install-Package Microsoft.EntityFrameworkCore -Version 2.0.2
Here we are going to install SQL Server Express as a database so we need to install Nuget Package for that also.

enttity-framework-core-sqlserver-nuget-package

You can also install via running following command.
Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.0.2
Now it’s time to write some code. First of all, We are going to create A model called Student and In that, we are going to have two private fields.
namespace EFCore2Mapping
{
    public class Student
    {

        public int StudentId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }


        private string _standard;
        private string _division;


        public void AssignStandard(string standard)
        {
            _standard = standard;
        }

        public void AssignDivision(string division)
        {
            _division = division;
        }

        public string GetStandard()
        {
            return _standard;
        }

        public string GetDivision()
        {
            return _division;
        }
    }
}

Here in the above code, You have seen that I have created few fields for Student Model. If you see it carefully, You can see that there are two private fields _standard and _division.  And there are two methods for each field to get and set private variables.

Now let’s write our Entity Framework Data Context. That’s where the Magic going to happen.
using Microsoft.EntityFrameworkCore;

namespace EFCore2Mapping
{
    public class StudentContext : DbContext
    {
        public DbSet<Student> Student { get; set; }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer("Data Source=Your Server;Initial Catalog=Student;User ID=sa;[email protected]");
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Student>().Property<string>("Division").HasField("_division");
            modelBuilder.Entity<Student>().Property<string>("Standard").HasField("_standard");
        }
    }
}

Here in the above code, If you see I have created a dataset for our student model that is a standard way to create a table for the map. There is another method OnCofiguring for giving database connection string. There are is another method called OnModelCreating which Entity framework core uses to create tables. Here If you see that I have written code to map private fields to Table Fields so that two fields Division and Standard will be created with tables.

Now let’s run the migration to create a table like following.

migration-to-create-private-fields-in-table-entity-framework-core

You need to go to the Nuget Package Manager Console and then run the following command.
Add Migration Initial Create
Once you are done with it. It will create the tables in the database like following.

fields-created-in-SQL-Server

Now let’s write some code insert data in the table. So following is code for the same.
using System;
using System.Collections.Generic;
using System.Linq;

namespace EFCore2Mapping
{
    class Program
    {
        static void Main(string[] args)
        {

            List<Student> ExistingStudents = new List<Student>();

            Student student = new Student
            {
                FirstName = "Joe",
                LastName = "Tailor",
            };
            student.AssignStandard("5");
            student.AssignDivision("A");

            using (StudentContext studentConext = new StudentContext())
            {
                ///Adding a new Student;
                studentConext.Student.Add(student);
                studentConext.SaveChanges();


                ///Retriviting newly added student
                ExistingStudents = studentConext.Student.ToList();
                
            }

            foreach(Student s in ExistingStudents)
            {
                Console.WriteLine($"Student Id: {s.StudentId}");
                Console.WriteLine($"First Name: {s.FirstName}");
                Console.WriteLine($"Last Name:{s.LastName}");
                Console.WriteLine($"Standard:{s.GetStandard()}");
                Console.WriteLine($"Division:{s.GetDivision()}");
            }
        }
    }
}

Here you can see that in the above code, I have created Student called Joe Tailor and then I have saved it in the database and then I have written the code for fetching the student data and print it via for loop.

When you run this application It will show like following.

output-entity-framework-core-flexible-column-mapping

That’s it. Here you can see that It’s very easy to Manipulate the Columns with Entity Framework core 2.0. Hope you like it.
This complete blog post source  code available on github at - https://github.com/dotnetjalps/EFCoreFlexibleObjectMapping
Share:
Thursday, April 26, 2018

Subscribe to my YouTube channel- DotNetJalps

Dear Friends,
Recently I have been creating lots of Videos. I feel that with videos People can learn and see what others are doing. So I have already started a YouTube channel for my blog. Where I am going to create videos and explain the topics which is difficult to understand.

So on this occasion, I would really like to ask a favor to subscribe to my channel. As I want to give it a proper URL and for that, I require more than 500 subscribers. So If you like the videos recently I have posted. Please do subscribe to my YouTube channel.

https://www.youtube.com/channel/UC5n1O3KCfG3ip3O3pvonCNw?view_as=subscriber

As always, I would to thanks for all the love that you are showering to my blog and I will try best to make my YouTube Channel a great hit.

Thanks in advance for the all the support and love you guys are providing.
Share:

Video: How to debug C# Code with Visual Studio Code

Hello Friends, Recently I have been having fun creating Video. So Here I have created one more. In this Video, I have explained how we can debug the C# Code with Visual Studio Code.

For those, you don’t know Visual Studio Code is a brand new open source Editor from Microsoft. It provides lots of cool features and debugging is one of them. It has got built-in debug support and intellisense with languages like CSharp and Node.js.

So what we are waiting for. Here is the link for the video.
https://www.youtube.com/watch?v=NrEG2vAcRGM&t=154s



You can see the same video at the following link.

https://vimeo.com/265443966


Subscribe to Youtube Channel:

If you are really like my videos then don’t forget to subscribe to my youtube channel.I really need your help giving my youtube channel a custom URL so I need to have 500 subscribers to my channel. So Please do subscribe if you like this kind of videos that I produced.

Here is the link to YouTube

https://www.youtube.com/channel/UC5n1O3KCfG3ip3O3pvonCNw?view_as=subscriber

That’s it. Stay tuned for more!!.

Share:
Tuesday, April 17, 2018

Video: How to use Git with Visual Studio Code

Recently I am having fun creating videos and I have created another one.

In this video, I have explained how we can use GIT Source Control with Visual Studio Code. You will get any idea how it is very easy to to use GIT with Visual Studio Code. You can see that video at following.



Also, don’t forget to subscribe to my channel for more videos, There is a  lot more coming!. Following is my youtube subscription link.


https://www.youtube.com/channel/UC5n1O3KCfG3ip3O3pvonCNw?view_as=subscriber

You can find the same video at vimeo.com at following place
How to use Git with Visual Studio Code from Jalpesh Vadgama on Vimeo.

Stay tuned lot more coming!!
Share:
Saturday, April 14, 2018

Video: How to create Rest API in ASP.NET Core

I have again created a video for creating Rest API in ASP.NET Core. In this video I have explained How we can create Rest API with ASP.NET core very easily.
I hope you will enjoy the video.

Here is the link for the video.
https://www.youtube.com/watch?v=QpjkiQ5qYtw




Same Video is available at Vimeo also.

How to create Rest API with ASP.NET Core and Visual Studio Code from Jalpesh Vadgama on Vimeo.

YouTube Channel:

I have created my channel on YouTube. Don’t forget to subscribe it. There is lot more coming.

https://www.youtube.com/channel/UC5n1O3KCfG3ip3O3pvonCNw?view_as=subscriber

I have also written a blog post earlier also for the same. Here is the blog post for the same.

https://www.dotnetjalps.com/2016/06/create-rest-webapi-aspnet-core.html

Stay tuned for more!!.
Share:
Saturday, April 7, 2018

Video: .NET Core command line interface

Just recently created a new video for .NET Command Line interface. Please have a look at it.

And Please subscribe to my YouTube channel at following place. There are lots more coming.

https://www.youtube.com/channel/UC5n1O3KCfG3ip3O3pvonCNw?view_as=subscriber

Share:

Register for Global Azure Bootcamp 2018–from Ahmedabad User Group

Friends, We are back with new events again. We are going to host Global Azure Bootcamp 2018.

bootcamplogo


About Global Azure Bootcamp:

If you don’t know what is Global Azure Bootcamp then it is a worldwide Event for Azure.  All around the world user groups and communities want to learn about Azure and Cloud Computing!

On April 21, 2018, all communities will come together once again in the sixth great Global Azure Bootcamp event! Each user group will organize their own one-day deep dive class on Azure the way they see fit and how it works for their members. The result is that thousands of people get to learn about Azure and join together online under the social hashtag #GlobalAzure!

Ahmedabad User Group is also organizing the same. This time we want to put it on a bigger level. So there will be lots more to learn, A great opportunity to network with like-minded people. Best Part you will get a chance to meet lots of awesome speakers. It has also got lunch included!.

I am also one of the speakers and will be presenting About Azure Active Directory.

So what you are waiting for go Grab a chance to meet and learn about Azure Cloud Platform.
Here is a link from where you can register for Global Azure Bootcamp 2018.

https://www.eventbrite.com/e/global-azure-bootcamp-2018-by-ahmedabadusergroup-tickets-40757803688


I am hoping to see you everybody there!!. Go Grab before it gets full!.
Share:

Video Recording : Webinar on ASP.NET Core on Linux

I have done a Webinar for DotNetTricks.com about ASP.NET Core on Linux. There were lots of curiosity about it and lots of people asked for the recording of Webinar so here we go Following is a link of recording of Webinar for ASP.NET Core on Linux. You can watch the full webinar on youtube at following.

https://www.youtube.com/watch?v=Hf0F7nZCTXM&t=706s



I would also like to Thanks Shailendra and Whole DotNetTricks team for the having me on this webinar.

Thank you. Stay tuned there were lots of stuff coming from ASP.NET core and Node.js.
Share:
Search This Blog
About Me
My Photo

Full Stack Developer, Blogger, Microsoft Mvp, Mentor, Lifelong learner, 12+ Years of Experience for JavaScript, web and Microsoft technologies. ASP.NET MVC/Core, C#, Angular,Vue.js and node.js
Subscribe to my blog

  

My You tube channel- Please Subscribe
Youtube Video Playlist
My Mvp Profile
Follow us on facebook
Blog Archive
Total Pageviews