日期:2014-05-20  浏览次数:20714 次

来高手,求解决。
一个项目中因为需要,创建了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取不同的名字

 为何要映射两个 一样的实体层?