C# 无法在EF访问的存储过程中将NVARCHAR转换为datetime2

C# 无法在EF访问的存储过程中将NVARCHAR转换为datetime2,c#,sql,entity-framework,C#,Sql,Entity Framework,我正试图从C#执行一个存储过程 存储过程: CREATE PROCEDURE LogDataExport (@ExportedOn DATETIME2) AS INSERT INTO dbo.DataExportLogging (Id, ExportedOn, Description, Text) SELECT 1, @ExportedOn, 'asd', 'dsasadfsdag' GO 我得到一个错误,dt无法从NVARCHAR转换为Datetime2如果

我正试图从C#执行一个存储过程

存储过程:

CREATE PROCEDURE LogDataExport
    (@ExportedOn DATETIME2)
AS 
    INSERT INTO dbo.DataExportLogging (Id, ExportedOn, Description, Text)
        SELECT 1, @ExportedOn, 'asd', 'dsasadfsdag'
GO

我得到一个错误,
dt
无法从
NVARCHAR
转换为
Datetime2
如果您喜欢服务器端解决方案,可以将
dbo.DataExportLogging.ExportedOn
列默认值设置为
getdate()

尝试在SqlParameter上指定数据类型
dt.SqlDbType=SqlDbType.DateTime2是编译时错误还是运行时错误?具体错误是什么?请共享
DataExportLogging
CREATE TABLE
脚本。该脚本将获取数据库服务器时区中的日期,而不是客户端应用程序的日期。所以不完全一样。如果您使用
Datetime2
作为您的数据类型(推荐!),您也应该停止使用
getdate()
而改用
sysdatetime()
CREATE PROCEDURE LogDataExport
    (@ExportedOn DATETIME2)
AS 
    INSERT INTO dbo.DataExportLogging (Id, ExportedOn, Description, Text)
        SELECT 1, @ExportedOn, 'asd', 'dsasadfsdag'
GO