При выводе списка в представлении происходит ошибка Поле не найдено: "DB2ConnSettings._bEnableEFCaseSensitivity".
Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.
Сведения об исключении: System.MissingFieldException: Поле не найдено: "DB2ConnSettings._bEnableEFCaseSensitivity".
[MissingFieldException: Поле не найдено: "DB2ConnSettings._bEnableEFCaseSensitivity".]
IBM.Data.DB2.EntityFramework.DB2ProviderServices.GetDbProviderManifestToken(DbConnection connection) +0
System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) +90
[ProviderIncompatibleException: Поставщик не вернул строку ProviderManifestToken.]
System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) +258
System.Data.Entity.Utilities.DbProviderServicesExtensions.GetProviderManifestTokenChecked(DbProviderServices providerServices, DbConnection connection) +26
[ProviderIncompatibleException: Произошла ошибка при доступе к базе данных. Обычно это означает, что подключение к базе данных установить не удалось. Удостоверьтесь в том, что задана правильная строка подключения, а также в том, что для ее указания используется соответствующий конструктор DbContext, либо найдите ее в файле конфигурации приложения. Дополнительные сведения о DbContext и соединениях см. в статье http://go.microsoft.com/fwlink/?LinkId=386386. Подробные сведения об ошибке см. в описании внутреннего исключения.]
System.Data.Entity.Utilities.DbProviderServicesExtensions.GetProviderManifestTokenChecked(DbProviderServices providerServices, DbConnection connection) +82
System.Data.Entity.Infrastructure.<>c__DisplayClass1.<ResolveManifestToken>b__0(Tuple`3 k) +31
System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) +62
System.Data.Entity.Infrastructure.DefaultManifestTokenResolver.ResolveManifestToken(DbConnection connection) +277
System.Data.Entity.Utilities.DbConnectionExtensions.GetProviderInfo(DbConnection connection, DbProviderManifest& providerManifest) +72
System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection) +44
System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext) +61
System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input) +123
System.Data.Entity.Internal.LazyInternalContext.InitializeContext() +616
System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +18
System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() +53
System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator() +16
System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.IEnumerable.GetEnumerator() +54
ASP._Page_Views_Requests_Create_cshtml.Execute() in D:\projects\RCA_2\RCA_2_VS2015\Views\Requests\Create.cshtml:36
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +177
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +80
System.Web.WebPages.StartPage.RunPage() +47
System.Web.WebPages.StartPage.ExecutePageHierarchy() +71
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +101
System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +297
System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +115
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +248
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +27
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +58
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +349
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +69
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +188
System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +124
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +27
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +58
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +30
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +29
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +27
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +48
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +58
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +30
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +21
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +32
System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +26
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +40
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +58
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +30
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +21
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +29
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +24
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +27
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +48
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +58
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +30
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +21
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +29
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +23
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9744261
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
Так выглядит метод в контроллере:
public ActionResult Create(string returnUrl)
{
DbConnect db = new DbConnect();
//Console.WriteLine(((ObjectQuery)db.users).ToTraceString());
ViewBag.users = db.users;
ViewBag.ReturnUrl = returnUrl;
ViewBag.DropDownSign = RequestModel.getSignList();
return View();
}
Так выглядит подключение:
public class DbConnect : DbContext
{
public DbSet<Users> users { get; set; }
}
Так выглядит модель:
public class Users
{
public long Id { get; set; }
public string Login { get; set; }
}
Так вывод в представлении:
@foreach(Users user in ViewBag.users)
{
<p>@user.Login</p>
}
Строка подключения в Web.config:
<add name="DbConnect" connectionString="Server=xx.xx.xx.xx;Database=DB;Uid=login;Pwd=pwd;" providerName="IBM.Data.DB2" />
И соответственно провайдер (прописано автоматически при установки пакетов из NuGet):
<provider invariantName="IBM.Data.DB2" type="IBM.Data.DB2.EntityFramework.DB2ProviderServices, IBM.Data.DB2.EntityFramework, Version=10.5.5.6, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />
Что может быть не так?
Сообщение об ошибке содержит следующий текст:
Произошла ошибка при доступе к базе данных. Обычно это означает, что
подключение к базе данных установить не удалось. Удостоверьтесь в том,
что задана правильная строка подключения, а также в том, что для ее
указания используется соответствующий конструктор DbContext
, либо
найдите ее в файле конфигурации приложения.
Для начала необходимо добавить конструктор в DbConnect
, в котором будет вызываться базовый конструктор DbContext куда будет передаваться имя строки подключения из файла конфигурации, откуда будут браться данные для подключения:
public class DbConnect : DbContext
{
public DbConnect()
: base("DbConnect")
{ }
public DbSet<Users> users { get; set; }
}
Если не поможет, то возможно у Вас попросту не достаточно прав у пользователя, который указан в строке подключения. Дайте пользователю из строки подключения больше прав в настройках базы данных.
Виртуальный выделенный сервер (VDS) становится отличным выбором