我已经找到了一百万个应该如何工作的例子,但我无法弄清楚为什么它不能正确识别这个类,好像它没有被标记为“部分”。这是我的部分类,允许我在配置文件中定义我的数据库连接字符串:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration; // For Reading Connection String from Web.Config
namespace PSDataClasses
{
public partial class DataClassesDataContext
{
public DataClassesDataContext() : base(ConfigurationManager.ConnectionStrings["PSDataClasses.Properties.Settings.DBConnectionString"].ConnectionString)
{
OnCreated();
}
}
}
但OnCreated()在当前上下文中不存在,它认为我的类是一个对象......我错过了什么?
答案 0 :(得分:0)
您只是定义了class DataClassesDataContext
而没有从另一个类继承(除非您在另一个文件中已经这样做了......)因此DataClassesDataContext
继承自object
- 所有类派生自对象在层次结构的顶部。
然后使用单个参数调用基础构造函数(看起来像是一个字符串)。但是object
没有一个将字符串作为参数的构造函数 - 事实上它只有一个构造函数,它是无参数的。因此,您会收到错误 - 您正在尝试调用不存在的构造函数。
我认为你缺少一个类继承声明,说它是继承自(例如)DataContext:
public partial class DataClassesDataContext : DataContext
{
public DataClassesDataContext() : base(ConfigurationManager.ConnectionStrings["PSDataClasses.Properties.Settings.DBConnectionString"].ConnectionString)
{
OnCreated();
}
}
现在调用base(....)
将调用' DataContext with a string as a parameter. And if such a constructor exists for class
DataContext的构造函数,你的代码应该编译(并且正常工作)。
答案 1 :(得分:0)
我也遇到过这个问题。 实际上,我的问题是我没有从DbContext继承我的上下文类。在确定它工作正常。