【发布时间】:2015-01-23 06:34:43
【问题描述】:
我在 Asp.net 中使用实体框架在 vs 2010 中使用 oracle 数据库工作。我从代码中为实体框架工作数据上下文提供连接字符串。这是我的代码:
public static string getConStrSQL()
{
//string connectionString = new System.Data.EntityClient.EntityConnectionStringBuilder
string connectionString = new System.Data.EntityClient.EntityConnectionStringBuilder
{
Metadata = "res://*",
Provider = "Oracle.ManagedDataAccess.Client",
//Provider = "Oracle.DataAccess.Client",
ProviderConnectionString = new System.Data.SqlClient.SqlConnectionStringBuilder
{
//InitialCatalog = "ORCL",
DataSource = "MONOJ-PC:1521/ORCL",
//IntegratedSecurity = false,
UserID = "C##MONOJ", // User ID such as "sa"
Password = "Thanks123", // hide the password
}.ConnectionString
}.ConnectionString;
return connectionString;
}
public List<CUSTOMER> GetCustomerList()
{
using (Entities db = new Entities())
{
db.Connection.ConnectionString = getConStrSQL();
db.Connection.Open();
var data = from p in db.CUSTOMERs
select p;
db.Connection.Close();
return data.ToList();
}
}
但是当我运行代码时出现以下错误:
指定的架构无效。错误: 错误 0194:加载到 ItemCollection 中的所有工件必须具有相同的版本。遇到了多个版本。 DAL.DBModel.ssdl(2,46):错误 0172:所有 SSDL 工件必须针对同一提供程序。提供者“Oracle.DataAccess.Client”与之前遇到的“Oracle.DataAccess.Client”不同。 DAL.DBModel.ssdl(2,89):错误 0169:所有 SSDL 工件必须针对同一提供程序。 ProviderManifestToken '12.1' 与之前遇到的 '9.2' 不同。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(3,4):错误 0019:EntityContainer 名称必须是唯一的。已定义名为“Schema”的 EntityContainer。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(834,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.Table”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(844,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.TableColumn”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(870,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.View”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(882,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.ViewColumn”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(908,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.Function”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(933,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.Procedure”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(943,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.Parameter”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(967,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.Constraint”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(979,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.CheckConstraint”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(987,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.ConstraintColumn”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(996,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.ForeignKeyConstraint”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1005,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.ForeignKey”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1016,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.ViewConstraint”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1031,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.TableTableConstraint”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1044,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.ConstraintConstraintColumn”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1057,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.ConstraintForeignKey”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1070,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.FromForeignKeyColumn”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1083,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.ToForeignKeyColumn”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1096,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.TableTableColumn”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1109,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.ViewViewColumn”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1122,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.FunctionFunctionParameter”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1135,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.ProcedureProcedureParameter”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1148,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.ViewViewConstraint”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1161,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.ViewConstraintConstraintColumn”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1174,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.ViewConstraintForeignKey”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1187,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.FromForeignKeyViewColumn”已定义。 Oracle.ManagedDataAccess.src.EntityFramework.Resources.EFOracleStoreSchemaDefinition.ssdl(1200,4):错误 0019:架构中的每个类型名称都必须是唯一的。类型名称“Oracle.ToForeignKeyViewColumn”已定义。
我用谷歌搜索但没有得到任何答案。 请帮我。是银色的。
【问题讨论】:
-
您的项目中有多少个 .edmx 文件?
-
感谢您的回复,我的项目中有一个 .edmx 文件....
标签: c# oracle entity-framework