【问题标题】:How can call database function from asp.net core 3.1 from the controller class如何从控制器类调用 asp.net core 3.1 中的数据库函数
【发布时间】:2021-08-25 09:10:46
【问题描述】:

如何从控制器调用 sqlserver 数据库函数 dbo.EmpHrsEmpHrs()。它的返回值为十进制。我想将标量函数的返回值存储到模型类属性 EmpHrs。我已经检查了谷歌,但我找不到这个问题的正确解决方案。

模型类

Employee.cs
public int id{get;set;)
public string EmpName(get;set;)
public decimal EmpHrs(get;set;)

dbContext.Employee.EmpHrs = // 这里我们应该从标量函数中获取值

【问题讨论】:

    标签: asp.net-core


    【解决方案1】:

    您可以在您的 dbcontext 中添加 [DbFunction("CalculateAge", "dbo")],如下所示

    public class MyDbContext:DbContext
    {
        public MyDbContext(DbContextOptions<MyDbContext> options):base(options)
        { }
    
        public DbSet<Employee> Employees { get; set; }
    
        [DbFunction("CalculateAge", "dbo")]
        public static int CalculateAge(DateTime dob)
        {
            throw new NotImplementedException();
        }
    }
    

    然后就可以通过DbContext.CalculateAge(...)调用函数了。

    相关博客和帖子

    1. Entity Framework Core 2 – Scalar function mapping

    2. How to call a Scalar Function in Entity Framework Core

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      • 2020-10-18
      • 2014-01-09
      • 1970-01-01
      相关资源
      最近更新 更多