У меня есть класс, отражающий мой dbml-файл, который расширяет DataContext, но по какой-то странной причине он говорит мне
System.Data.Linq.DataContext 'не содержит конструктор, который принимает' 0 'аргументов "
Я следовал различным учебникам по этому вопросу и не сталкивался с этой проблемой, и VS, похоже, не может ее исправить.
Вот моя реализация
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;
}
}
}
И это ContractsControlDataContext
, на которое указывает проблема
(кстати, это не имеет отношения к очень недавнему посту, который я сделал, просто я работаю над тем же)
EDIT
Вероятно, стоит уточнить это, поэтому, пожалуйста, прочитайте очень внимательно.
Если вы не расширяете DataContext в частичном классе, то ExecuteMethodCall
недоступен.
Intranet.ContractsControlDataContext не содержит определения для «ExecuteMethodCall» и не найден метод расширения «ExecuteMethodCall», принимающий первый аргумент типа «Intranet.ContractsControlDataContext» (вы пропустили директиву using или ссылку на сборку? )
Может быть, я упускаю что-то невероятно глупое?
решаемые
Я думаю, что, возможно, Visual Studio боролся здесь, но я полностью полагался на автоматически сгенерированный код. Если щелкнуть правой кнопкой мыши представление представления языка моделирования базы данных и нажать «Просмотреть код», он автоматически создаст частичный класс для вас в определенном пространстве имен, , однако , это пространство имен было неверным. Если бы кто-то мог уточнить это для меня, я был бы очень признателен.
Файл .designer.cs находится в namespace Intranet.Areas.Accounts.Models
, однако файл .cs (частичный класс, сгенерированный для файла .designer.cs с помощью Visual Studio) находился в namespace Intranet
. Легко заметить кого-то более опытного в этой области, чем я.
Реальная проблема сейчас в том, чей ответ я отмечаю как правильный? Потому что многие из вас помогли найти эту проблему.