-
Notifications
You must be signed in to change notification settings - Fork 19
Open
Description
I have a very simple example to demonstrate this issue.
I have a Table Valued Function:
CREATE FUNCTION [dbo].[TestTVF]
(
@param1 varchar(max)
)
RETURNS TABLE
AS
RETURN
(
SELECT 1 as Id, 'Test' as [Name]
)
And I have the DbFunction
[DbFunction("DB", "TestTVF")]
public IQueryable<TestTvfResult> TestTVF([ParameterType(StoreType = "varchar(max)")] string param1)
{
var p1 = param1 != null ?
new ObjectParameter("param1", param1) :
new ObjectParameter("param1", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.
CreateQuery<TestTvfResult>("[DB].[TestTVF](@param1)", p1);
}
But when I use the function the sql generate is this:
exec sp_executesql N'SELECT
1 AS [C1],
[Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name]
FROM [dbo].[TestTVF](@param1) AS [Extent1]',N'@param1 nvarchar(4000)',@param1=N'test'
Expected: use varchar(max) and not nvarchar(4000)
Metadata
Metadata
Assignees
Labels
No labels