【发布时间】:2020-01-08 16:24:06
【问题描述】:
我在尝试初始化 DBContext 时立即收到此错误 简短背景:我正在使用一个共享 dll,其中包含所有实体的 DBcontext 实体框架,这在我的项目中与 enityframework.dll 等一起引用。
我可以看到其中的所有类,这是 Model.dll 中的代码
namespace Model
{
public class BSysDbContext : DbContext
{
public BSysDbContext(bool proxyCreationEnabled = true);
public virtual DbSet<TaskResource> TaskResources { get; set; }
public virtual DbSet<TaskOrder> TaskOrders { get; set; }
public virtual DbSet<TaskMessage> TaskMessages { get; set; }
public virtual DbSet<TaskEvent> TaskEvents { get; set; }
etc
在我的代码中,我试图检索数据,但在点击“_context = new BSysDbContext();”时出现上述错误
public partial class ChangeSupervisor : DevExpress.XtraEditors.XtraForm
{
BSysDbContext _context;
public ChangeSupervisor()
{
InitializeComponent();
_context = new BSysDbContext();
}
}
我的连接字符串是:
<connectionStrings>
<add name="BSysDbContext" connectionString="metadata=res://Model.dll/BSysDbModel.csdl|
res://Model.dll/BSysDbModel.ssdl|
res://Model.dll/BSysDbModel.msl
;provider=System.Data.SqlClient;provider connection string=';data source=DESKTOP-5T9EDLN;initial catalog=BuilderSysDB_DEV;user id=llduser;password=P@ssw0rd1;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework';" providerName="System.Data.EntityClient" />
</connectionStrings>
不,我在连接字符串中放什么并不重要,它似乎甚至不知道该字符串存在。 根据我用谷歌搜索的内容,我不需要这样的model.dll
public class BSysDbContext : DbContext
{
public BSysDbContext ()
: base("name=BSysDbContext")
{
}
}
因为名字是一样的。
注意,我无权访问 DLL 的源代码,否则我会进行此更改。 我需要知道的是......是缺少“公共BSysDbContext() : base("name=BSysDbContext") " 在 DLL 中是什么导致了我的错误消息或者我在这里遗漏了什么?
连接字符串在我看来没问题,我创建了另一个空白项目并将其用作创建此项目的示例
感谢任何建议
【问题讨论】: