C # 도우미 클래스에서 SQL DB 연결 명령문을 사용하여 최소화하는 방법

c# dapper

문제

현재 C # 헬퍼 페이지에서 간단한 select 문을 사용할 때마다 아래 코드를 계속 작성합니다.

using (var ctx = new MyDBContext())
    {
        using (var cmd = (SqlCommand)ctx.Database.Connection.CreateCommand())

이 업데이트를 작성하는 더 깨끗한 방법을 찾아 냈지만 select를 사용하여 작동하지는 못합니다. 다음은 내가 업데이트를 위해 한 일입니다.

using (var ctx = new MyDBContext())
  {
   await ctx.Database.ExecuteSqlCommandAsync(@"UPDATE PO SET ESD = @ESD WHERE PoNumber = @PoNumber",new SqlParameter("ESD", (object)ESD ?? DBNull.Value), new SqlParameter("PoNumber", PoNumber));}
   }

그리고 이것은 제가 선택을 위해 노력하는 것입니다,하지만 작동하지 않습니다

using (var ctx = new MyDBContext())
        {
            string sqlQuery ="SELECT * FROM POStages WHERE PoNumber = @PoNumber";
           poStages =  await ctx.Database.SqlQuery((sqlQuery
                ,new SqlParameter("PoNumber", PoNumber)).ToListAsync(); 
        }

수락 된 답변

SqlParameter는 @PoNumber 여야합니다.

다음은 올바른 구문입니다. 둘 다 유효합니다.

await ctx.Database.SqlQuery(
    typeof(DAL.Models.POStages),
    sqlQuery, 
    new SqlParameter("@PoNumber", PoNumber)).ToListAsync();

또는

await ctx.Database.SqlQuery<DAL.Models.POStages>(            
        sqlQuery, 
        new SqlParameter("@PoNumber", PoNumber)).ToListAsync();


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.