2009-06-13 9 views
1

ADO.NET Entity Frameworkでエラーなしでストアドプロシージャを呼び出すにはどうすればよいですか?私は以下のコードを使用している場合、私はエラーを取得する:ADO.NET Entity Frameworkでエラーなしでストアドプロシージャを呼び出す方法は?

adminNameContext.AddItemCategory(12, "ggf", DateTime.Now); 

エラー:

データリーダーが指定した「NetTanitimTestModel.Categories」と互換性がありません。タイプ 'ID'のメンバーには、同じ名前のデータ・リーダーに対応する列がありません。 PARENTID、カテゴリー、日付

+1

エラーがそれをすべて言う:あなたはそこではありません結果セット(「ID」)で列を参照しようとしている... –

+0

は、ストアドプロシージャが(T-SQLどのように見えるかを私たちに示しますコード)を表示し、どのテーブル(テーブル構造)に対して実行するかを表示します –

+0

marc_s;私は私の質問をリフレッシュした。もう一度見てください:) – Penguen

答えて

0

EFデータモデルとデータベースが同期していないように見えます。 EFデータモデルの "Categories"オブジェクトに "ID"フィールドがあるように見えますが、テーブルには表示されていないようです。

私はデータベースからEFデータモデルを更新し、問題が修正されるかどうかを確認します。これを行うには、EDMXデザイナを開き、デザイン面の空白部分を右クリックし、[データベースからモデルを更新]オプションを選択します。それは2つの世界を同期させるはずです。

マルク・

+0

marc_s結果は以前と同じです... – Penguen

+0

EFデータモデルの "Categories"オブジェクトにはどのフィールドがありますか? –

0

ミッチ小麦はあなたに答えを与えた:

ALTER procedure [dbo].[sp_AddItemCategory] 
( 
    @item int, 
    @category nvarchar(50), 
    @date smalldatetime 
) 
as 
begin 
    if(@item=-1) 
    begin 
    insert into Categories(PARENTID,Category,Date) values(null,@category,@date) 
    end 
    else 
    begin 
    insert into Categories(PARENTID,Category,Date) values(@item,@category,@date) 
    end 
end 
iは、カテゴリー3つの列を持っているテーブルがあります。 ID列を使用しようとしていますが、表にはPARENTID列があります。

関連する問題