EF中的TVP出错

时间:2012-07-15 07:04:23

标签: c# stored-procedures entity-framework-4 table-valued-parameters

我在EF + SP中使用EF +函数在sql 2008中发送和获取值。

SP:

ALTER proc [dbo].[InsertIntoScore]
(
@DateReg datetime,
@stdLastName nvarchar(50),
@stdFirstName nvarchar(50),
@Description nvarchar(500),
@tvpScore ScoreType READONLY
)
AS
DECLARE @Id AS INT
BEGIN TRY
BEGIN TRANSACTION
INSERT INTO Student(DateReg,stdLastName,stdFirstName,[Description])
VALUES (@DateReg,@stdLastName,@stdFirstName,@Description)

set @Id = SCOPE_IDENTITY() 

insert tblScore(...)
Select ... FROM @tvpScore 

COMMIT
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK
END CATCH

TVP:

CREATE TYPE dbo.ScoreType AS TABLE ( ScoreID int, StudentID int, etc.... ) 

但在添加SP到EF显示此错误:

生成的模型带有警告或错误。

有关详细信息,请参阅错误列表。在运行您的应用程序之前,必须解决这些问题。

从数据库加载元数据需要00:00:02.5618735。

生成模型需要00:00:01.2346890。

1 个答案:

答案 0 :(得分:3)

Ef不支持TVP。您必须直接使用ADO.NET调用此存储过程。

Edti:您可以在Data UserVoice投票支持TVP支持。