我继承了一些代码(经常发生!),看起来有点像这样:(省略了命名空间)
public partial class SpatialDatabase : global::System.Data.Objects.ObjectContext
{
public string MY_PROCEDURE(Decimal arg1, Decimal arg2)
{
using (EntityConnection conn = new EntityConnection(this.Connection.ConnectionString))
{
conn.Open();
object a = new System.Data.Objects.ObjectContext(new EntityConnection());
EntityCommand cmd = conn.CreateCommand();
cmd.CommandText = "SpatialDatabaseContext.MY_PROCEDURE";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("ARG1", arg1);
cmd.Parameters.AddWithValue("ARG2", arg2);
EntityParameter resultParam = cmd.Parameters.Add("RESULT", DbType.String, 100);
resultParam.Direction = ParameterDirection.Output;
int c = cmd.ExecuteNonQuery();
return (string)resultParam.Value;
}
}
}
最佳答案
由于ObjectContext没有任何接受0参数的构造函数,并且您没有用SpatialDatabase
类调用任何base(...)构造函数,因此您的代码是,隐式调用了基类的默认构造函数base()
。
您当前的代码等效于:
public partial class SpatialDatabase : global::System.Data.Objects.ObjectContext
{
SpatialDatabase() : base() //Problem is here
{
}
}
关于c# - 'System.Data.Objects.ObjectContext'不包含带有0个参数的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11665629/