来高手,求解决。
一个项目中因为需要,创建了2个实体层,2个DB层,DBContext引用的方法都是一样的
internal class DBContext : OpenAccessContext
{
private static string _connectionString;
private static MetadataSource _metadataSource;
private static BackendConfiguration _backendConfig;
static DBContext()
{
_connectionString = ConfigurationManager.AppSettings["connectionString"];
_metadataSource = AttributesMetadataSource.FromAssembly(typeof(ToHi.Qx.Safety.SysConfig.Domain.IEntity).Assembly);
_backendConfig = new BackendConfiguration();
_backendConfig.Backend = ConfigurationManager.AppSettings["DAL"] == "SQLServerDAL" ? "mssql" : "oracle";
}
public DBContext()
: this(_connectionString)
{ }
public DBContext(string connectionString)
: base(connectionString, _backendConfig, _metadataSource)
{
this.Log = Console.Out;
}
public IObjectScope Scope
{
get { return this.GetScope(); }
}
}
现在问题是项目网站有的地方用了第一个DB层A,有的地方用了第二个DB层B,结果,如果先用DB层A那么DB层B就不能用,反之先引用DB层B,那么DB层A就不能用,错误是:Type is enhanced and registered, but not available from the database class meta data. This can be caused by a wrong connection id or configuration. connection链接错误也可能是映射不到表。
求解决。
------解决方案-------------------- A和B取不同的名字
为何要映射两个 一样的实体层?