2012-01-04 10 views
1

私はsqlmetal.exrを使用して私のマッピングコードを生成しています。私は使用してSQLメタルを呼び出しています。sqlmetal.exeが返すジェネリック型 'System.Data.Linq.Table'を使用すると1つの型引数が必要

cd C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin 
SqlMetal.exe /server:servername\SQL /database:mydb /code:mycode.cs 

出力がCSファイルで、コマンドPROMTは言う:

Microsoft (R) Database Mapping Generator 2008 version 1.00.30729 for Microsoft (R) .NET Framework version 3.5 Copyright (C) Microsoft Corporation. All rights reserved.

私は私のプロジェクトにファイルを追加し、それを構築しようとすると、私は次のエラーを取得する:

Using the generic type 'System.Data.Linq.Table' requires 1 type arguments

これはmycode.csファイルにあります。私はSystem.Data.LinqとSystem.Dataを参照しています。これを動作させるためには、何が欠けていますか?

更新

Make sure you have System.Data.Linq in your GAC and that the assembly version is 3.5.0.0. Also make sure that's the version your project is referencing.

enter image description here

enter image description here

Double-check that your application's target framework hasn't somehow been changed to something other than 3.5. The Linq To SQL features only work with the 3.5 framework.

enter image description here

+0

あなたはLinqをSQlなどにしていますか?あなたのコードでLinq文を使っていますか? .csファイルのヘッダからSystem.Linqを削除しない場合 – MethodMan

+0

はい私はLinq to SQLを実行していますが、Linqの文章inmyコードがあります。 – John

+0

プロジェクトをコンパイルするとok .. GACのSystem.Data.Linq ..ですか? – MethodMan

答えて

1

ここでの問題は、あなたがCAもののリストをしている続く場合あなたはGACにSystem.Data.Linqとアセンブリバージョンが3.5.0.0であることを確認している

  • :nは問題

    /トライをチェックするためにいくつかのことを解決してみてください。また、あなたのプロジェクトが参照しているバージョンであることを確認してください。

  • プロジェクト参照を見ると黄色の "!"が表示されます。参照の横にあるアイコン?その場合は、プロジェクト参照のSystem.Data.LinqのバージョンがVSによって検出されていないことを示します。参照を削除して新しい参照を追加してください。

  • アプリケーションのターゲットフレームワークが何とか3.5以外のものに変更されていないことを再度確認します。 Linq To SQL機能は、3.5フレームワークでのみ機能します。

+0

これらの点の回答を元に質問を更新しました。すべてはうまくいくようですが、まだ動作しません。ご協力いただきありがとうございます。 – John

+0

Copy LocalをTrueに設定し、それが役立つかどうかを確認します。展開するときに、System.Data.Linqのバージョンがターゲットシステムにないことが必要です。また、Pathを見てください。あなたのローカルのパスも、ターゲットパスがあなたのローカルパスと同じであると仮定することはできません.. – MethodMan

関連する問題