具有 EF 引发错误的 .Net MVC 存储库模式(本地引发类型 'System.InvalidOperationException' 的异常



我从实体框架的objContext.warrantys属性中得到以下错误。

错误消息:在类型为"System.Data.OleDb.OleDbConnection"的存储提供程序实例上调用"get_ProviderFactory"方法后返回null。存储提供程序可能无法正常工作。

Local 'objContext.warrantys.Local' threw an exception of type 'System.InvalidOperationException' System.Collections.ObjectModel.ObservableCollection<DSGWarrantyServiceRep.Core.warranty> {System.InvalidOperationException}

在Web.config中,

public class warranty
{
public int WarrantyId
{
get;
set;
}
[Required(ErrorMessage =" Please provide Warrranty Name")]
[MinLength(4)]
public string WarrantyName
{
get;
set;
}
[Required(ErrorMessage = " Please provide Warrranty Period")]
public string WarrantyPeriod
{
get;
set;
}
[Required(ErrorMessage = " Please provide UPC Nbr")]
public string UpcNbr
{
get;
set;
}
public warranty()
{
}
}

现在,我将添加dbcontext类。

public class WarrantyContext:DbContext
{
public WarrantyContext() : base("name=warrantyConnectionString")
{
}
public DbSet<warranty> warrantys { get; set; }
}

现在从我的保修服务类在这里实施

public class WarrantyService : IWarrantyService
{
WarrantyContext objContext = new WarrantyContext();
public void AddWarranty(warranty ws)
{
objContext.warrantys.Add(ws);
objContext.SaveChanges();
}
public IEnumerable<warranty> GetAllWarranty()
{
**return objContext.warrantys;**
}
}

您似乎需要在web.config(web应用程序)或app.config(其他)中检查连接字符串。也可以随意张贴在这里。您似乎在使用OLEDB,而应该使用本机SqlClient。

您应该有这样的东西(在这种情况下是本地数据库,但对您来说可能是SQL),例如:

<connectionStrings>
<add name="warrantyConnectionString" connectionString="Data Source=(LocalDb)MSSQLLocalDB;AttachDbFilename=|DataDirectory|aspnet-TestApp1-20170112094217.mdf;Initial Catalog=aspnet-TestApp1-20170112094217;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

相关内容

最新更新