我在同一个数据库中有两组独立的表,它们对完全相同的数据进行建模,但处于不同的状态。一个是实时状态,另一个是暂存状态(不是测试)。我正在尝试创建一个模型,允许我选择在运行时使用哪个datasource / datacontext,但它们必须具有相同的模型。
public TestObject GetTestObject(string testNum, string Environment)
{
IDataContext context = DataContextFactory.GetContext(Environment);
TestObject t = (from test in context.Orderable
where test.TestNumber == testNum
select test).FirstOrDefault();
return t;
}
显然,根据上面的代码,如果环境是暂存,我从一组表中提取。如果环境是实时的,那么我从一组不同的表中拉出来。
所以,通常使用EF,我会得到两个不同名称的独立模型。如果我尝试给他们相同的名字,我会得到错误,说明项目中已经有一个具有该名称的对象。
我最近调查了自己的POCO以使用数据库,但是无法连接点以创建解决方案。
编辑:从“两个数据源”更改为“同一数据库中的两组表”。这显然令人困惑,道歉。
答案 0 :(得分:1)
有可能吗?大概。这是个好主意吗?不会。它需要更多的时间才能使它工作吗?最有可能。
答案 1 :(得分:0)
如果我正确理解你的要求,你真的不需要两个上下文。
您只需要换掉在运行时实例化上下文时使用的连接字符串。这将允许您将上下文指向生产或临时数据库。