我已经开始在实体框架中使用 CodeFirst 方法。
运行我的代码时,我无法对 DbContext - ProductsDb 中的 DbSet 执行任何操作
我检查了连接字符串,我认为它是正确的,但尝试执行操作会导致错误
值不能为空,参数来源。
这是 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 方法已被更改。