Xamarin에서 Entity Framework Core를 사용하여 Azure의 SQL Database를 탐색
8076 단어 AzureXamarinEntityFramework
개요
제목대로.
※거의, 개요 - 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에서 다음을 넣는다.
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에서 다음을 넣는다.
CREATE TABLE Users (
id int PRIMARY KEY NOT NULL,
mail text NOT NULL
)
Visual Studio에서 Xamarin(이번에는 Xamarin.Forms)의 빈 프로젝트를 만듭니다.
NuGet에서 다음을 넣는다.
DB와 마찬가지로 클래스 만들기
다음과 같이 DB의 구성에 따른 클래스를 만든다.
필드 변수가 DB와 다르면 올바르게 처리 할 수 없으므로주의.
DBModel.csusing 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.csusing System;
using System.Collections.Generic;
using System.Text;
namespace DBTest2
{
class User
{
public int id { get; set; }
public string mail { get; set; }
}
}
데이터를 추가하고 데이터를 가져옵니다.
우선 콘솔의 출력을 사용해 보겠습니다.
MainPage.xaml.csusing 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);
}
}
}
}
}
요약
다음을 주의하면 된다.
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認証))を入力}");
}
}
}
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);
}
}
}
}
}
요약
다음을 주의하면 된다.
optionsBuilder.UseSqlServer(@"{Azure Portalの該当SQLデータベースの接続文字列(ADO.NET(SQL認証))を入力}");
를 제대로 쓴다 Reference
이 문제에 관하여(Xamarin에서 Entity Framework Core를 사용하여 Azure의 SQL Database를 탐색), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/redshoga/items/f3b7a10dc48c569df094텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)