0

我在 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

电视节目:

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

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

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

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

从数据库加载元数据耗时 00:00:02.5618735。

生成模型耗时 00:00:01.2346890。

4

1 回答 1

3

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

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

于 2012-07-15T07:30:09.997 回答