使用实体框架对API进行版本控制

时间:2014-02-11 18:09:32

标签: .net wcf entity-framework

我正在使用我们公司多年来使用的数据库架构,而且我无法改变它的基本结构。出现了访问这些数据的API的需求,因此我们决定采用WCF数据服务和实体框架。为了使数据模型比我们的表结构更有意义,我们将EF模型附加到SQL视图而不是表。这对我们的目的非常有效。

现在,我正在考虑创建API的第二个(更新版)版本,同时需要现有API继续为旧应用程序工作,并让两个API并行运行,通过不同的URL端点访问。

我为新版本创建了一个新的WCF数据服务端点,根据需要创建了新的SQL视图(其名称附加了“_v2”),以及将模型映射到新视图的新数据库上下文。这也很有效。

打嗝是我想要有EF模型类的单独版本,因为我想在它们中实现细微差别。但是我遇到了命名冲突,EF框架给出错误“CLR类型到EDM类型的映射是模糊的。”

使用具有相同名称的第二组EF模型的唯一方法是通过从单独的程序集加载模型。这是我唯一的选择吗?我还应该考虑其他方法吗?

我还考虑过为这两个版本使用相同的EF模型类,并在配置模型时使用Ignore方法,但这也不太理想。

有关替代方法的任何建议都表示赞赏!

1 个答案:

答案 0 :(得分:1)

将新模型放在不同的命名空间中。

Namespace ModelsV2
{
    public class CarsV2
    {
       ...
    }
}