asp.net-core - 在迁移时使用 ASP.NET Core 中的代码优先方法创建 SQL Server 函数
问题描述
我有这样的数据库功能:
CREATE FUNCTION [dbo].[FuelByOrganization]
(@organziationId INT = 0)
RETURNS TABLE
AS
RETURN
SELECT
dbo.FuelDelivery.ID AS FuelDeleveryId,
dbo.Contracts.ContractNumber AS ContractLetterNumber,
FROM
dbo.FuelDelivery
INNER JOIN
dbo.Contracts ON dbo.FuelDelivery.ContractID = dbo.Contracts.ID
WHERE
dbo.Contracts.OrganizationId = @organziationId;
我想在迁移数据库时运行此命令。我正在使用代码优先方法,如何在迁移期间创建此函数?
解决方案
替代答案:如果您计划在 LINQ 查询中使用此类函数 - 不要创建如此简单的存储过程,而是用 IQueryable 方法替换它们。然后,您可以将 IQueryable 与其他 LINQ 查询结合使用。
public static class BusinessFunctions
{
public static IQueryable<FuelByOrganizationResult> FuelByOrganization(this MyContext ctx, int? organziationId = default)
{
var query =
from fd in ctx.FuelDelivery
from c in fd.Contracts
select new {
fd,
c
};
if (organziationId != bull)
query = query.Where(q => q.c.OrganizationId = organziationId);
return query.Select(q =>
new FuelByOrganizationResult
{
FuelDeleveryId = q.fd.Id,
ContractNumber = q.c.ContractNumber
});
}
}
推荐阅读
- sql-server - 如何使用链接服务器从 SQL Server 2012 连接到 Oracle 数据库?
- flash - 无法访问空对象引用的属性或方法:帮帮我
- python - 运行代码时,StopIteration 一直随机显示
- java - Java如何在地图中存储getter
- docker - 动态容器的反向代理
- c# - c# api status: 如果我们从处理 api 请求所需的一些中间服务获得空响应,应该是什么状态和异常
- javascript - 恢复(更新、恢复)被移除的元素
- reactjs - 使用 React.js 更改特定点击元素的 css
- oracle - 使用 Oracle 中的内部连接进行更新不起作用
- postgresql - PostgreSQL 中对主键的基本 CHECK 约束是否合理/必要?