具有相同连接字符串的多个模型MVC

时间:2015-02-02 22:53:14

标签: c# asp.net-mvc entity-framework database-connection

不太确定这是否是提出问题的正确方法,但我现在正在了解MVC。

我有多个实体数据模型(我不确定这是最佳实践,但它似乎合乎逻辑),但只有一个工作,因为它呈现

的错误

'Asaurus.Models.ConnectionString'已经定义了一个名为'ConnectionString'的成员,其参数类型相同......“

这是两个类

1:

    public partial class ConnectionString : DbContext
{
    public ConnectionString()
        : base("name=ConnectionString")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    public virtual DbSet<TABLE1> TABLE1 { get; set; }
}
}

2:

public partial class ConnectionString : DbContext
{
    public ConnectionString()
        : base("name=ConnectionString")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    public virtual DbSet<TABLE2> TABLE2 { get; set; }
}
}

是否有可能避免这种冲突?

先谢谢你,詹姆斯

1 个答案:

答案 0 :(得分:3)

  

不太确定这是否是提出问题的正确方法

嗯,考虑到你实际上并没有在标题中提出问题,我会说不......不是。除此之外,你真的需要了解asp.net MVC和实体框架是两个完全不同的技术,只是一起使用,所以问一个用mvc标记的问题,但它真正关于EF会比你获得更少的响应。如果你正确标记它。此外,您应该实际阅读您应用的标签。它们具有实际意义,在其描述中清楚地描述......特别是,[模型 - 视图 - 控制器]标签在其描述中说明了这一点:

  

模型 - 视图 - 控制器(MVC)是软件工程中使用的架构模式。对于Microsoft ASP.NET MVC,请改用[asp.net-mvc]标签。

因此,如果您想成为社区的好成员,请学习阅读网站告诉您的内容。

现在,关于你的问题......首先,为什么你的EDM被称为&#34; ConnectionString&#34;?你应该按照预期的目的命名它们。如果你使用的是至少EF 6(早期版本对此有困难),那么包含多个模型并没有错,但是你的问题是你同时调用了两个模型。您应该删除一个并使用更有意义的名称重新创建它。