데이터를 삽입하기위한 기존 저장 프로 시저가 있습니다. 동일한 SP 값을 삽입 한 후 int 값을 반환하고 싶습니다.값을 반환하십시오. EF 코드를 기준으로 먼저
제 질문은 EF 코드와 관련하여 C# 코드를 작성하는 방법입니다.
복귀가 삽입 값은 'A', 'B'
데이터를 삽입하기위한 기존 저장 프로 시저가 있습니다. 동일한 SP 값을 삽입 한 후 int 값을 반환하고 싶습니다.값을 반환하십시오. EF 코드를 기준으로 먼저
제 질문은 EF 코드와 관련하여 C# 코드를 작성하는 방법입니다.
복귀가 삽입 값은 'A', 'B'
넌 SqlQuery
using (var context = new MyContext())
{
var input = "a";
var result = context.Database.SqlQuery<int>("dbo.MyProc @param",
new SqlParameter("@param", input))
.FirstOrDefault();
// use result
}
@param
입력의 이름을 이용하여 임의의 질의 및 프록을 할 수있다 숫자 0 또는 1이고 param ('a', 'b')을 SPROC에 적용하면 <int>
이 결과의 형식 매개 변수입니다. 동일한 방법으로 반환 된 엔티티를 바인딩 할 수도 있습니다. 우리는 다시, input
매개 변수는 SQL 주입 문제
var result = context.Database.SqlQuery<int>("dbo.MyProc @param",
new SqlParameter("@param", input))
.FirstOrDefault();
편집을하지 않도록했습니다 간단한 정수 스칼라는 달리
이 SPROC에서 반환 학생, 당신의 EF 모델의 일류 기관 등의 Students
사운드 및 DbSets
으로 작성해야합니다.이 방법을 사용하면 Sql에 대한 LINQ
의 모든 기능을 사용할 수 있습니다.
하지만 당신은 이미 당신을 위해 필터링 않는 PROC이있는 경우 예, 당신은 사용할 수 있습니다
var students = context.Database.SqlQuery<Student>("dbo.MyProc @param",
new SqlParameter("@param", input)))
.ToList()
이 Student
의 속성과 일치하는 모든 열을 일치하고 바인딩합니다.
var students = context.Students.SqlQuery("dbo.MyProc @param",
new SqlParameter("@param", input)))
.ToList()
여러분의 도움에 감사드립니다 : SStudent = ...."인 많은 데이터를 검색해야하는 경우, 그것을 쓰려면 충분합니까? 아니면 더해야합니까? –
KLN
Student
이미DbSet<>
와 엔티티 인 경우 또는,하는DbSet.SqlQuery
과부하가있다! "목록@KLN 틀린 점에 답장을 했습니까? 원래의 질문이나이 대답은 학생과 관련이 없습니다. –
@KLN 학생들은 EF 모델에서 최고 수준의 엔티티처럼 들리며 'DbSets'로 만들어야합니다. 이렇게하면 LINQ 번역의 모든 기능을 SQL에 사용할 수 있습니다. 그러나 네, 이미 필터링을 수행하는 PROC가 있다면 result = context.Database.SqlQuery (...) 또는 result = context.Students.SqlQuery (...)를 다음과 같이 바꿀 수 있습니다 if 학생은 이미'DbSet <>'이있는 개체입니다. –
StuartLC