У меня есть класс, отражающий мой файл 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
, указывающее на проблему
(Кстати, это не имеет никакого отношения к очень недавнему сообщению, которое я сделал, просто я работаю над тем же)
ИЗМЕНИТЬ
Вероятно, стоит прояснить это, поэтому, пожалуйста, внимательно прочитайте.
Если вы не расширяете 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
. Легко найти для кого-то более опытного в этой области, чем я.
Реальная проблема теперь в том, кто отвечает, что я считаю правильным? Потому что многие из вас способствовали обнаружению этой проблемы.