L'Extension Du Système.Les données.Linq.DataContext

J'ai une classe en raison de ma dbml fichier qui s'étend DataContext, mais pour une raison étrange, il me dit

Système.Les données.Linq.DataContext " ne contient pas un constructeur qui prend un '0' arguments"

J'ai suivi les différents tutoriels sur ce sujet et n'ai pas rencontré ce problème, et VS ne semble pas en mesure de le réparer.

Voici ma mise en œuvre

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Reflection;
using System.Text;
using IntranetMvcAreas.Areas.Accounts.Models;

namespace IntranetMvcAreas
{
  partial class ContractsControlDataContext : DataContext
  {
    [FunctionAttribute(Name="dbo.procCC_Contract_Select")]
    [ResultType(typeof(Contract))]
    [ResultType(typeof(ContractCostCentre))]
    [ResultType(typeof(tblCC_Contract_Data_Terminal))]
    [ResultType(typeof(tblCC_CDT_Data_Service))]
    [ResultType(typeof(tblCC_Data_Service))]
    public IMultipleResults procCC_Contract_Select(
        [Parameter(Name = "ContractID", DbType = "Int")] System.Nullable<int> ContractID,
        [Parameter(Name = "ResponsibilityKey", DbType = "Int")] System.Nullable<int> ResponsibilityKey,
        [Parameter(Name = "ExpenseType", DbType = "Char")] System.Nullable<char> ExpenseType,
        [Parameter(Name = "SupplierID", DbType = "Int")] System.Nullable<int> SupplierID)
    {

      IExecuteResult result = this.ExecuteMethodCall(this, (MethodInfo)(MethodInfo.GetCurrentMethod()), ContractID, ResponsibilityKey, ExpenseType, SupplierID);
      return (IMultipleResults)result.ReturnValue;
    }
  }
}

Et c'est ContractsControlDataContext qui a souligné que le problème

(btw, cela n'a aucun rapport avec un très récent post que j'ai fait, c'est juste que je suis en train de travailler sur la même chose)

MODIFIER

Il est probablement utile de clarifier cela, donc merci de lire très attentivement.

Si vous ne pas étendre DataContext dans la classe partielle, puis ExecuteMethodCall n'est pas accessible.

'Intranet.ContractsControlDataContext' ne contient pas une définition pour 'ExecuteMethodCall' et aucune méthode d'extension 'ExecuteMethodCall' acceptant un premier argument de type 'Intranet.ContractsControlDataContext' a pu être trouvé (vous manque une directive using ou une référence d'assembly?)

Peut-être que je suis absent quelque chose d'incroyablement stupide?

RÉSOLU

Je pense peut-être que Visual Studio lutté ici, mais j'ai reposait entièrement sur le code généré automatiquement. Quand un clic droit sur la base de données langage de modélisation la vue de conception et de cliquer sur "Afficher le Code", il crée automatiquement une classe partielle pour vous à l'intérieur d'un espace de noms spécifique, cependant, cet espace de noms a été mauvais. Si quelqu'un pouvait préciser ce pour moi, je vous en serais très reconnaissante.

L' .le concepteur.cs fichier se trouve dans namespace Intranet.Areas.Accounts.Models, cependant l' .cs fichier (partielle de la classe générée pour l' .le concepteur.cs fichier par Visual Studio) a été en namespace Intranet. Facile à repérer pour quelqu'un de plus expérimenté dans ce domaine que moi.

Le vrai problème est maintenant, qui est la réponse dois-je marquer comme correct? Parce que beaucoup d'entre vous contribué à la recherche de ce problème.

OriginalL'auteur Kezzer | 2009-06-17