Xamarin에서 Entity Framework Core를 사용하여 Azure의 SQL Database를 탐색

개요



제목대로.

※거의, 개요 - EF Core | Microsoft Docs 와 같습니다.

Entity Framework란 무엇인가



Ruby on Rails에서 ActiveRecord의 .NET 버전. O/R 매퍼.
EntityFramework 정보 - Qiita

EF Core는 객체 관계형 매퍼(O/RM) 역할을 합니다. 이를 통해 .NET 개발자는 .NET 개체를 사용하여 데이터베이스를 조작할 수 있습니다. 일반적으로 개발자가 작성해야 하는 대부분의 데이터 액세스 코드가 필요하지 않습니다.
개요 - EF Core | Microsoft Docs

앱에서 SQL을 작성하는 것은 기분 나쁘지요. 나마가키는 맞습니다.

그럴 때 깔끔하게 쓸 수 있다.

사전 준비



SQL Database 준비



Azure에서 SQL Database를 준비합시다.

이번 샘플에서 사용하는 테이블은 다음과 같다.
CREATE TABLE Users (
    id int PRIMARY KEY NOT NULL,
    mail text NOT NULL
)



프로젝트 준비



Visual Studio에서 Xamarin(이번에는 Xamarin.Forms)의 빈 프로젝트를 만듭니다.

NuGet에서 다음을 넣는다.
  • Microsoft.EntityFrameworkCore
  • Microsoft.EntityFrameworkCore.SqlServer

  • DB와 마찬가지로 클래스 만들기



    다음과 같이 DB의 구성에 따른 클래스를 만든다.

    필드 변수가 DB와 다르면 올바르게 처리 할 수 ​​없으므로주의.

    DBModel.cs
    using Microsoft.EntityFrameworkCore;
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace DBTest2
    {
        class DBModel : DbContext
        {
            public DbSet<User> Users { get; set; }
    
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                optionsBuilder.UseSqlServer(@"{Azure Portalの該当SQLデータベースの接続文字列(ADO.NET(SQL認証))を入力}");
            }
        }
    }
    

    User.cs
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace DBTest2
    {
        class User
        {
            public int id { get; set; }
            public string mail { get; set; }
        }
    }
    

    데이터를 추가하고 데이터를 가져옵니다.



    우선 콘솔의 출력을 사용해 보겠습니다.

    MainPage.xaml.cs
    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Xamarin.Forms;
    
    namespace DBTest2
    {
        public partial class MainPage : ContentPage
        {
            public MainPage()
            {
                InitializeComponent();
    
                using (var db = new DBModel())
                {
                    db.Users.Add(new User { mail = "[email protected]", id = 1 });
    
                    var count = db.SaveChanges();
    
                    Debug.WriteLine("{0} records saved to database", count);
    
                    foreach (var user in db.Users)
                    {
                        Debug.WriteLine("{0}", user.mail);
                    }
                }
            }
        }
    }
    

    요약



    다음을 주의하면 된다.
  • 필요한 패키지를 제대로 넣는다
  • 클래스의 필드 변수를 DB와 같은 이름을 사용합니다.
  • optionsBuilder.UseSqlServer(@"{Azure Portalの該当SQLデータベースの接続文字列(ADO.NET(SQL認証))を入力}");를 제대로 쓴다
  • 좋은 웹페이지 즐겨찾기