如何使用 C# 代码部分中的 SQL 函数使用 MVC 4 中的实体框架

Posted

技术标签:

【中文标题】如何使用 C# 代码部分中的 SQL 函数使用 MVC 4 中的实体框架【英文标题】:How do I use a SQL function from C# code section using Entity Framework in MVC 4 【发布时间】:2016-07-01 09:37:09 【问题描述】:

我有一个这样的 SQL 函数,命名为 AgeCalc

USE [DB_test]
GO
/****** Object:  UserDefinedFunction [dbo].[AgeCalc]    Script Date: 01-Jul-16 3:31:52 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[AgeCalc]()
RETURNS NUMERIC(9,2)
AS
BEGIN
    DECLARE @birth_date DATETIME
    DECLARE @today_date DATETIME
    DECLARE @age NUMERIC(9,2)
    SELECT @birth_date = DofB FROM dbo.Table_formula
    SELECT @today_date = InpDate FROM dbo.Table_formula

    RETURN CONVERT(NUMERIC(9,2), @birth_date -@today_date )
END

如何从我的 C# 代码端调用这个 AgeCalc 函数?我已经以这种方式调用了一个过程

DBC dbc = new DBC();
dbc.Database.SqlQuery<tbl_user>("inT_pop @id", new SqlParameter("@id", 2)).ToList();

这里inT_pop是我的过程名称,我也可以调用函数吗?

【问题讨论】:

看这里,它可以是你的答案***.com/questions/31729442/… 【参考方案1】:
YourContext.CreateQuery<bool>(
"SELECT VALUE YourModel.Store.UserDefinedFunction(@Parameter1) FROM 1",
new ObjectParameter("Parameter1", Parameter1Value)).First();

希望这可能会有所帮助

【讨论】:

好像在ADO.NET中试过了,但是提问者要求在Entity Framework中解决 @user2256217,我正在使用带有 EF 的函数而不是 ado.net。您可能会感到困惑,请仔细查看。

以上是关于如何使用 C# 代码部分中的 SQL 函数使用 MVC 4 中的实体框架的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中调用 SQL 函数?

在 C# 的 ToUpper 或 SQL 中的 Upper 函数的性能方面哪个更好

使用正则表达式从 C# 中的 SQL 语句中查找 SQL 函数

sql如何按日期中的月份查询

如何使用 SMO 在存储过程中调用 c# 函数?

C#如何调用JS文件中的函数