기존의 엔티티를 사용하면서 직접쿼리를 아래와 같이 할수있습니다.

엔티티로는 안되는  SEQUENCE 값이라든지(평션등을 이용하면 가능하지만 귀찮음) 

이런걸 사용 할 때  사용하면 좋을 꺼 같습니다.

Oracle

            OracleParameter op = new OracleParameter("NameVal", "kojaedoo");
            OracleParameter op2 = new OracleParameter("CompanyCodeVal", "0001");

            string query = @"INSERT INTO KOJAEDOO.PERSON (EMP_CODE, ""NAME"", COMPANY_CODE) VALUES(SEQUENCE1.NEXTVAL,:NameVal, :CompanyCodeVal )";
            db.ExecuteStoreCommand(query, op , op2);

MS Sql

예를 들어 다음의 두 메서드 호출은 동일합니다.

context.ExecuteStoreQuery<Product>("select * from Products where pid = {0}", 1);

context.ExecuteStoreQuery<Product>("select * from Products where pid = @p0", new SqlParameter { ParameterName = "p0", Value = 1 });
 
a

MSDN

using (SchoolEntities context =
    new SchoolEntities())
{
    // The following three queries demonstrate 
    // three different ways of passing a parameter.
    // The queries return a string result type.

    // Use the parameter substitution pattern.
    foreach (string name in context.ExecuteStoreQuery<string>
        ("Select Name from Department where DepartmentID < {0}", 5))
    {
        Console.WriteLine(name);
    }

    // Use parameter syntax with object values.
    foreach (string name in context.ExecuteStoreQuery<string>
        ("Select Name from Department where DepartmentID < @p0", 5))
    {
        Console.WriteLine(name);
    }
    // Use an explicit SqlParameter.
    foreach (string name in context.ExecuteStoreQuery<string>
        ("Select Name from Department where DepartmentID < @p0",
            new SqlParameter { ParameterName = "p0", Value = 5 }))
    {
        Console.WriteLine(name);
    }
}
msdn: http://msdn.microsoft.com/ko-kr/library/ee358769.aspx

+ Recent posts