postgresql - 如何使用.net core DBFunction将行作为参数传递给Postgres函数
问题描述
使用c#.net核心将pgsql表对象作为参数传递?
嗨,在 pgsql 中我们可以将表行作为参数传递,我想知道我们如何在 .net 核心中使用它?
像下面的函数需要一些参数并给出它的功能
-CREATE OR REPLACE FUNCTION public."GetUserName"(u "User_", pmed "Pharmacy", puser "Pharmacy", m "Medication")
RETURNS character varying
LANGUAGE plpgsql
AS $function$
BEGIN
return (
case when u."Id" > 0 then
(
u."FirstName" || ' ' ||coalesce(u."LastName", '')
|| (
case when u."Pharmacy_Id" > 0 then
(case when puser."PharmacyId" > 0 then ' (' || puser."PharmacyName" || ') ' else '' end)
else '' end
)
)
when coalesce (u."Id" , 0) = 0 then pmed."PharmacyName" else '' end
);
END
$function$
;
我想使用 .net core ef core 调用此函数,而无需使用 DbFunctions appraoch 进行动态查询
解决方案
与其尝试将整行作为参数传递给函数(通常效率不高),不如尝试传递该行的主键。然后,您的函数可以像往常一样对该行执行任何查询或更新。
通常,在关系数据库中,行不作为您传递或操作的实体存在(尽管 PostgreSQL 确实具有对复合类型的第一类支持,也支持表)。
推荐阅读
- android - 构建失败的未知属性“packagingOptions”
- api - 尝试使用 API 中的数据,但出现一些错误
- c++ - 什么时候应该创建自己的异常类型?
- python - 带约束的简单线性回归
- django - Django Model Formset 忽略 is_valid() 上的 Form Instance
- php - 对通过 while 循环获取的 PHP 数组进行排序
- c# - 当 wpf 数据网格中的 itemssource 为空时显示一个空行
- android - RxJava2 可观察问题
- c# - 使用 C# 在 Windows 10 上控制左右扬声器平衡级别
- php - 查询中的 CodeIgniter 计数为额外列