0

SQL 2008で送信および取得値にEF + SPでEF +関数を使用します。

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 かかりました。

4

1 に答える 1

3

Ef は TVP をサポートしていません。このストアド プロシージャは、ADO.NET で直接呼び出す必要があります。

Edti: Data UserVoiceで TVP サポートに投票できます。

于 2012-07-15T07:30:09.997 に答える