0
public class SqlProductsRepository : IProductsRepository
{
   private Table<Product> productsTable;
   public SqlProductsRepository(string connectionString)
   {
       **productsTable = (new DataContext(connectionString)).GetTable<Product>();
   }
   public IQueryable<Product> Products
   {
       get { return productsTable; }
   }
}

これは、pro asp.netブックのSportsStoreの例です(ここにソースコードへのgithubリンクがあります)。コードを実行すると、system.ArgumentExceptionエラーが表示されます。誰かがこのエラーが正確に何であるか、そしてどうすればそれを修正できるか教えてもらえますか? エラーは太字の領域に表示されます。

エラー:キーワードはサポートされていません:メタデータ "

接続文字列:

SQLRepository:

パブリッククラスSqlProductsRepository:IProductsRepository{プライベートテーブルproductsTable;

  public SqlProductsRepository(string connectionString)
   {
       productsTable = (new DataContext(connectionString)).GetTable<Product>();
   } 

   public IQueryable<Product> Products
   {
       get { return productsTable; }
   }
4

1 に答える 1

0

ほとんどの場合、connectionString が正しく設定されていません。

接続文字列は、設定後すぐに解析されます。解析時に構文エラーが見つかった場合、ArgumentException などの実行時例外が生成されます。その他のエラーは、接続を開こうとしたときにのみ検出されます。

詳細については、http: //msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspxをご覧ください。

于 2011-03-16T14:58:28.730 に答える