2021년 목표설정

이미지
기본적으로 작년에 달성하지 못한 것들을 하려고 생각중인데..코로나가 언제까지 이어질지, 한국이나 북해도는 갈 수 있을지..자격증은 응시 가능할지..여러가지가 불확실하다. 2021년은 무엇보다 정신적인 부분과 경제적인 부분에 중점을 두고 조금 더 치열하게 지내보고 싶다. 일본나이로도 30대 마지막 해, 이제 불혹에 접어드는 나이..복잡하지만 심플하게. 육체적목표 : 트라이에슬론 스탠다드 도전하기 정신적 : 자격증2개 도전 + 자체개발 서비스 론칭 가족적 : 가정의 평화를 유지하기 경제적 : 외식과 유흥비를 줄이고 부수입을 늘려서 결과적으로 저축하기 사회적 : 목표세미나를 포함해서 민단과 개인인맥의 활성화와 교류를 촉진하기

[메모] Entity Framework 를 이용한 데이터조작

Npgsql과 Entity Framework를 설치한 후, using으로 데이터 관련 라이브러리를 추가한 후, 아래와 같이 사용할 수 있음.
기본적으로는 DbContext 모델을 만든 후, 그 모델에 접근해서 데이터를 조작한다.

여기서는 effects 라는 테이블에 id (pk), effectname (char) 라는 두 개의 컬럼이 있다고 가정하고, 기본적인 CRUD 를 해 봤다.
LINQ는 좀 더 공부를 해야할 듯.

자주 쓰면 익숙해지겠지..??

<참고>



using System;
using System.Data;
using System.Linq;
using System.Data.SqlClient;
using System.Data.Entity;
using Npgsql;

namespace NpgsqlEF6TestApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            using (var model = new NpgsqlEF6TestModel())
            {
                // insert
                // 짧게 기술하면 이렇게도 가능
                model.effects.Add(newEffect { effectname = "健康維持", });
                // 보통은 이렇게 삽입할 개체를 만든 후 값을 대입한 후 add() -> savechanges() 함
                var insertData = model.effects.Create();
                insertData.effectname = "健康維持";
                model.effects.Add(insertData);
                model.SaveChanges();

                // delete, 값을 찾아서 remove 한 후에 db에 적용
                var delTargetData = model.effects.Single(p => p.id == 13);
                model.effects.Remove(delTargetData);
                model.SaveChanges();

                // update 
                var UpdateTargetData = model.effects.Single(p => p.id == 1);
                if (UpdateTargetData != null
                {
                    UpdateTargetData.effectname =  "筋力強化";
                    model.SaveChanges();
                }
                
                // select with LINQ (query style)             
                var query = from effect in model.effects
                            orderby effect.id
                            select effect;

                // select with LINQ (method style)         
                var query = model.effects
                            .OrderBy(effect => effect.id)
                            .Select(effect => effect);

                // output
                foreach (var item in query)
                {
                    Console.WriteLine(item.id + ", " + item.effectname);
                }
                Console.WriteLine("Press any key to exit...");
                Console.Read();

            }
        }
    }
}

댓글

이 블로그의 인기 게시물

[메모] PostgreSQL에서 Insert 하는 경우 자동채번 PK가 중복에러 나는 경우

[C# & LINQ] 랜덤으로 데이터를 한 개 추출하는 방법

[react-native] uuid 생성이 에러가 날 때 대처법