본문 바로가기
728x90
반응형

전체 글303

.NET Core MVC] EF Core - 7. DB 동시성 제어(2) DbUpdateConcurrencyException Department.cs namespace WEB.Models; public class Department { public int DepartmentID { get; set; } [StringLength(50, MinimumLength = 3)] public string Name { get; set; } [DataType(DataType.Currency)] [Column(TypeName = "money")] public decimal Budget { get; set; } [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] [Display(Name = "Start .. 2023. 8. 29.
.NET Core MVC] EF Core - 7. DB 동시성 제어(1) tracking property 동시성 충돌(Concurrency conflicts) 동시성 충돌은 한 사용자가 수정하기 위해 entity를 조회하고, db에 수정사항을 저장하기 전에 다른 사용자가 동일한 entity를 수정하면 발생한다. 이러한 충돌을 감지하지 못하면, 마지막 저장하는 사람이 다른 사람의 수정사항을 덮어쓸 수 있다. 많은 applications에서 이러한 risk는 감당할만하다. 사용자가 적거나, 수정사항이 적거나, 몇몇 수정사항을 덮어써도 문제되지 않는 경우에는, 동시성 제어를 위한 프로그래밍의 비용이 이로인한 이익보다 더 클 수 있다. 이러한 경우에는, 동시성 제어를 위한 구성을 하지 않아도 된다. Pessimistic concurrency (locking) 어플리케이션이 동시성 시나리오에서 사고로 데이터가 손실되.. 2023. 8. 29.
.NET Core MVC] EF Core - 6.related data CRUD related data CRUD를 구현하기 위해, 아래 view파일을 포함한 CRUD 기능에 필요한 코드를 작성해보자. Index.cshtml Create.cshtml Delete.cstml 우선 Course Entity를 확인해보자. Navigation Property가 3개가 있지만, 수정은 Department만 할 수 있도록 작성하였다. namespace WEB.Models; public class Course { [DatabaseGenerated(DatabaseGeneratedOption.None)] [Display(Name = "Number")] public int CourseID { get; set; } [StringLength(50, MinimumLength = 3)] public strin.. 2023. 8. 28.
C#] Method Parameters - params, out params : 가변수의 argument를 받는다. in : by reference로 전달되며, 호출된 함수가 읽을 수만 있다. ref : by reference로 전달되며, 호출된 함수가 읽거나 쓸 수 있다. out : by reference로 전달되며, 호출된 함수가 쓸 수 있다. params params keyword를 사용하므로, method parameters가 arguments의 가변수를 갖는다고 지정할 수 있다. parameter type은 일차원 array어야 한다. params keyword이후에는 추가 parameters가 허용되지 않는다. params parameter의 type이 1차원 배열이 아니면 compiler가 에러를 일으킨다. params parameter와 함께 함수를 호.. 2023. 8. 23.
C#] Method Parameters - parameters 전달 C#에서 arguments는 value 또는 reference로 parameter로 전달될 수 있다. C# types은 reference type(class) 이거나 value type(struct)일 수 있다. value 전달은 변수의 copy를 함수로 전달한다는 의미이다. reference 전달은 변수 접근을 함수로 전달한다는 의미이다. reference type의 변수는 데이터의 reference를 포함한다. value type의 변수는 데이터를 직접 포함한다. struct는 value type이기 때문에, 함수에 struct를 전달할 때, 함수는 struct arguments의 copy를 받아 처리한다. 함수는 호출한 함수의 원본 struct에 접근할 수 없으므로, 수정할 수 없다. 함수는 오직 .. 2023. 8. 22.
.NET Core MVC] EF Core - 5.복잡한 data model 생성 앞의 tutorial에서는 3 entities의 간단한 data model을 다루어보았다. 추가 entities와 관계를 설정하고 data model을 customize해보자. Customize the Data model attribute를 사용해서 data model을 customize해보자. DataType attribute 학생 등록일에 대해 날짜까지만 관리하지만, web page는 data와 time을 표시한다. annotation attribute를 사용하므로 web page에서 날짜까지만 표시하도록 수정할 수 있다. [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode .. 2023. 8. 7.
728x90
반응형