728x90 반응형 전체 글303 C#] method signature - generic type, specific type arguments에는 generic type을 사용하고, return value로는 specific type을 사용하자! 1. Return the most specific type, accept the most generic type Use the most generic types possible for arguments Use the most specific types possible for return values public abstract class Pet { /* ... */ } public class Dog : Pet { /* ... */ } public class Cat : Pet { /* ... */ } 1.1 Generic types are for arguments public stati.. 2023. 9. 15. C# 9.0] init keyword, record, with-expression Init-only properties Object initializer는 사용자에게 객체 생성을 위한 유연하고 가독성있는 형식의 타입을 제공한다. 특히, 객체의 nested object 생성에 편리하다. public class Person { public string? FirstName { get; set; } public string? LastName { get; set; } } var person = new Person { FirstName = "Mads", LastName = "Torgersen" }; 한계 중 하나는, properties가 mutable이어야 한다는 것이다. Init-only properties로 해결할 수 있다. init accessor는 객체 초기화 시에만 호출되는 set ac.. 2023. 9. 5. .NET Core MVC] EF Core - 10. Cartesian Product, Cartesian Explosion Single query의 Performance issue RDB 작업을 할때, EF는 single query에 JOIN을 사용해서 related entities 데이터를 로딩한다. SQL에서 JOIN이 일반적인 방법이지만, 부적절하게 사용하면 심각한 Performance issue를 일으킬 수 있다. Cartesian Product Cartesian product는 2 sets의 곱을 나타내는 수학적 표현이다. first set이 2 elements로 이루어져 있고, second set이 3 elements로 이루어져있을 때, cartesian product 결과는 6 elements이다. first set의 각 elements에 second set의 모든 elements를 조합한다. { a1, a2 }.. 2023. 9. 4. .NET Core MVC] EF Core - 9. raw SQL queries raw SQL queries 실행 EF의 장점 중 하나는, data 저장 특정 방법에 매여있지 않다는 것이다. SQL queries를 작성할 수 있다. 하지만, 특정 SQL queries를 실행할때 예외적인 시나리오가 있다. 이 시나리오를 위해, SQL 구문을 database에 직접적으로 전달할 수 있는 함수를 제공한다. EF Core 1.0에 다음의 option이 있다. entity type을 return하는 queries를 위해서는 DbSet.FromSql 함수를 사용한다. return object는 DbSet object이어야 한다. turn tracking off 하지 않는 이상 database context에 의해 자동으로 추적된다. non-query 명령어를 위해서는 Database.Execu.. 2023. 9. 1. .NET Core MVC] EF Core - 8. Entity 상속(table-per-hierachy inheritance) OOP에서 코드 재사용성을 높이기 위해 상속을 사용할 수 있다. 공통 properties를 갖는 Person base class를 상속받도록 Instructor, Student class를 수정해보자. 웹페에지는 수정되지 않고, 코드만 수정하면 자동으로 database에 반영된다. Map inheritance to database 이러한 상속을 database에 구현하는 여러 방법이 있다. TPH students, instructors 모두의 정보를 포함하는 Person table을 갖을 수 있다. row가 어떤 type인지 식별하기 위한 discriminator column을 갖는다. 하나의 table에서 상속 구조를 만드는 패턴을 table-per-hierachy inheritance라고 한다. TP.. 2023. 8. 31. JavaScript] 장시간 움직임이 없는 경우 로그아웃 처리 2023. 8. 30. 이전 1 ··· 9 10 11 12 13 14 15 ··· 51 다음 728x90 반응형