エンティティ フレームワークで CodeFirst アプローチを使い始めました。
コードを実行すると、DbContext 内の DbSets に対して操作を実行できません - ProductsDb
接続文字列を確認しましたが、正しいと思いますが、操作を実行しようとするとエラーが発生します
値を null にすることはできません。パラメーター ソース。
これが ProductsDb クラスです
public class ProductsDb : DbContext
{
public ProductsDb(string connectionString) : base(connectionString)
{
}
public ProductsDb()
{
}
public DbSet<AProduct> AProducts;
public DbSet<BProduct> BProducts;
public DbSet<CProduct> CProducts;
public DbSet<DProduct> DProducts;
}
接続文字列は、app.config で次のように定義されています。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="ProductsDb" providerName="System.Data.SqlClient"
connectionString="Data Source=MyPC\DEV;Initial Catalog=Test;User ID=sa;
Password=pass;" />
</connectionStrings>
</configuration>
エラーをスローするコードは次のとおりです。
GetAProduct(string id)
{
AProduct aProduct = null;
using (ProductsDb productsDb = new ProductsDb())
{
aProduct = (from a in productsDb.AProducts
where a.Id== id
select a).FirstOrDefault();
}
return aProduct;
}
すべての製品クラスは単純な古い C# クラスです。
何か助けていただければ幸いです。私は髪を抜き始めています。Sql クエリを作成するときに問題が発生することはありません。
更新: GetAProduct メソッドが変更されたコピー貼り付けエラー。