Linq 쿼리, 매핑 및 번역 없이 EF Core 3에서 SQL 함수 호출
1884 단어 dotnetcsharpentityframework
저는 Linq 쿼리를 사용할 필요가 없었기 때문에 아래와 같이 다른 방식으로 하고 있습니다.
SQL 함수가 있다고 가정해 보겠습니다.
CREATE FUNCTION dbo.IsStrogestAvenger(@Superhero varchar(100))
RETURNS bit
AS
BEGIN
declare @result bit=0
if(@Superhero ='Thor')
set @result=1
else
set @result=0
RETURN @result
END
`
이제 C# 코드로 전환합니다.
결과를 위해 이 출력을 보유할 모델을 생성해 보겠습니다.
`
public class IsStrongestAvengerResult
{
public bool IsStrongestAvenger { get; set; }
}
`
아래와 같이 컨텍스트 클래스에 매핑하십시오.
`
public virtual DbSet<IsStrongestAvengerResult> IsStrongestAvenger{ get; set; }
`
그리고
`
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<IsStrongestAvengerResult>(e => e.HasNoKey());
}
`
이제 FromSqlInterpolated를 사용하여 이 함수와 맵을 호출합니다.
`
public bool IsStrongestAvenger(string Superhero)
{
return context.IsStrongestAvenger.FromSqlInterpolated($"select dbo.IsStrogestAvenger ({Superhero}) as IsStrongestAvenger").FirstOrDefault().IsStrongestAvenger;
}
`
Important thing to note above is the use of AS >IsStrongestAvenger and it should match with the property name in >our model IsStrongestAvengerResult.IsStrongestAvenger
이제 이 함수를 C#에서 직접 호출하여 출력을 얻을 수 있습니다.
읽어 주셔서 감사합니다. 의견과 제안은 높이 평가됩니다.
Reference
이 문제에 관하여(Linq 쿼리, 매핑 및 번역 없이 EF Core 3에서 SQL 함수 호출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rramname/ef-core-3-without-linq-queries-mapping-and-translation-o7m텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)