不太确定这是否是提出问题的正确方法,但我现在正在了解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; }
}
}
是否有可能避免这种冲突?
先谢谢你,詹姆斯
答案 0 :(得分:3)
不太确定这是否是提出问题的正确方法
嗯,考虑到你实际上并没有在标题中提出问题,我会说不......不是。除此之外,你真的需要了解asp.net MVC和实体框架是两个完全不同的技术,只是一起使用,所以问一个用mvc标记的问题,但它真正关于EF会比你获得更少的响应。如果你正确标记它。此外,您应该实际阅读您应用的标签。它们具有实际意义,在其描述中清楚地描述......特别是,[模型 - 视图 - 控制器]标签在其描述中说明了这一点:
模型 - 视图 - 控制器(MVC)是软件工程中使用的架构模式。对于Microsoft ASP.NET MVC,请改用[asp.net-mvc]标签。
因此,如果您想成为社区的好成员,请学习阅读网站告诉您的内容。
现在,关于你的问题......首先,为什么你的EDM被称为&#34; ConnectionString&#34;?你应该按照预期的目的命名它们。如果你使用的是至少EF 6(早期版本对此有困难),那么包含多个模型并没有错,但是你的问题是你同时调用了两个模型。您应该删除一个并使用更有意义的名称重新创建它。