Wie können Sie diese Funktionstypen im EF -Kern zuordnen, da die zurückgegebene Tabelle nicht vorhanden ist? pre class = "Lang-sql PrettyPrint-Override">
Code: Select all
CREATE FUNCTION [dbo].[fn_multi_statement_test]
(
@p1 INT
)
RETURNS @OutputTable TABLE
(
[Id] INT,
[Name] NVARCHAR(50)
)
AS
BEGIN
DECLARE @Apple AS TABLE
(
[Name] NVARCHAR(50)
)
INSERT INTO @Apple ([Name]) SELECT 'Apple'
DECLARE @Pear AS TABLE
(
[Name] NVARCHAR(50)
)
INSERT INTO @Pear ([Name]) SELECT 'Pear'
INSERT INTO @OutputTable ([Id], [Name]) SELECT @p1, [Name] FROM @Apple
INSERT INTO @OutputTable ([Id], [Name]) SELECT @p1, [Name] FROM @Pear
RETURN
END;
< /code>
EF-Konfiguration < /p>
// MultiStatementTest.cs
public class MultiStatementTest
{
public int Id { get; set; }
public string Name { get; set; }
}
// Context.OnModelCreatingPartial.cs
public partial class Context
{
public IQueryable fn_multi_statement_test(int p1)
{
return FromExpression(() => fn_multi_statement_test(p1));
}
partial void OnModelCreatingPartial(ModelBuilder modelBuilder)
{
// What table name should be used here?
modelBuilder.Entity().ToTable(?);
modelBuilder
.HasDbFunction(typeof(Context).GetMethod(nameof(fn_multi_statement_test), new[] { typeof(int) }))
.HasName("fn_multi_statement_test")
.HasSchema("dbo");
}
}
Thanks.