0

我已经找到了一百万个应该如何工作的示例,但是我无法弄清楚为什么它不能正确识别该类,就好像它没有被标记为“部分”一样。这是我的部分类,允许我在配置文件中定义我的数据库连接字符串:

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() 在当前上下文中不存在,它认为我的类是一个对象......我错过了什么?

4

2 回答 2

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 classDataContext”的构造函数,您的代码应该可以正常编译(和工作)。

于 2017-04-28T12:26:23.540 回答
0

我也遇到过这个问题。实际上,我的问题是我没有从 DbContext 继承我的上下文类。修复后它工作正常。

于 2018-05-21T06:30:11.003 回答