c# - MySql和 Entity Framework 导致 "Object reference not set to an instance of an object."

标签 c# mysql asp.net entity-framework nullreferenceexception

如果这有点含糊,请原谅我...我正在将 MySql 连接器用于基于 Entity Framework 的应用程序。

我的内容表中有一条记录,我正在尝试获取该记录,但每当它尝试获取该记录时,我都会收到此异常:

Object reference not set to an instance of an object.

在这一行:

Data.Entities.Content content = this.SiteData.Content.Take(1).SingleOrDefault();

我已经检查过 SiteData 是一个实例(...它是),但是当我检查 Content 时,它似乎没有任何记录,所以我假设 Take(1)失败...我可能是错的。

这是堆栈跟踪:

[NullReferenceException: Object reference not set to an instance of an object.]
MySql.Data.Entity.SelectStatement.GetDefaultColumnsForTable(TableFragment table) +64
MySql.Data.Entity.SelectStatement.GetDefaultColumnsForFragment(InputFragment input) +90
MySql.Data.Entity.SelectStatement.AddDefaultColumns(Scope scope) +87
MySql.Data.Entity.SelectStatement.Wrap(Scope scope) +37
MySql.Data.Entity.SelectGenerator.WrapIfNotCompatible(SelectStatement select, DbExpressionKind expressionKind) +69
MySql.Data.Entity.SelectGenerator.Visit(DbLimitExpression expression) +37 System.Data.Common.CommandTrees.DbLimitExpression.Accept(DbExpressionVisitor1 visitor) +25<br/> MySql.Data.Entity.SqlGenerator.VisitInputExpression(DbExpression e, String name, TypeUsage type) +35<br/> MySql.Data.Entity.SelectGenerator.VisitInputExpressionEnsureSelect(DbExpression e, String name, TypeUsage type) +21<br/> MySql.Data.Entity.SelectGenerator.Visit(DbProjectExpression expression) +38<br/> System.Data.Common.CommandTrees.DbProjectExpression.Accept(DbExpressionVisitor1 visitor) +25
MySql.Data.Entity.SelectGenerator.GenerateSQL(DbCommandTree tree) +60 MySql.Data.MySqlClient.MySqlProviderServices.CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree) +329
System.Data.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree) +125
System.Data.EntityClient.EntityCommandDefinition..ctor(DbProviderFactory storeProviderFactory, DbCommandTree commandTree) +1411
System.Data.EntityClient.EntityProviderServices.CreateCommandDefinition(DbProviderFactory storeProviderFactory, DbCommandTree commandTree) +78
System.Data.EntityClient.EntityProviderServices.CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree) +159
System.Data.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree) +125
System.Data.Objects.Internal.ObjectQueryExecutionPlan.Prepare(ObjectContext context, DbQueryCommandTree tree, Type elementType, MergeOption mergeOption, Span span, ReadOnlyCollection1 compiledQueryParameters, AliasGenerator aliasGenerator) +453<br/> System.Data.Objects.ELinq.ELinqQueryState.GetExecutionPlan(Nullable1 forMergeOption) +736
System.Data.Objects.ObjectQuery1.GetResults(Nullable1 forMergeOption) +131
System.Data.Objects.ObjectQuery1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +36 System.Linq.Enumerable.SingleOrDefault(IEnumerable1 source) +179 System.Data.Objects.ELinq.ObjectQueryProvider.b__2(IEnumerable1 sequence) +41<br/> System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle(IEnumerable1 query, Expression queryRoot) +59
System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute(Expression expression) +133
System.Data.Entity.Internal.Linq.DbQueryProvider.Execute(Expression expression) +87 System.Linq.Queryable.SingleOrDefault(IQueryable`1 source) +251 SamsCreative.Home.Page_Load(Object sender, EventArgs e) in g:\Software Development\Projects\SamsCreative\SamsCreative\Home.aspx.cs:17
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51 System.Web.UI.Control.OnLoad(EventArgs e) +92
System.Web.UI.Control.LoadRecursive() +54
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772

我真的不知道是什么原因造成的......任何帮助将不胜感激!

最佳答案

正如“评论”中所述:

嗯...试试这个:

YourDbContext xxx = new YourDbContext();
var query = (from p in xxx select p).FirstOrDefault(); 

首先实例化您的 DbContext。

关于c# - MySql和 Entity Framework 导致 "Object reference not set to an instance of an object.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19213650/

相关文章:

c# - 是否有可用于 .NET 的类似数据库的持久层?

c# - DataContext如何在包含View的View中继承?

c# - Visual Studio 调试器,在 ASP 经典页面启动 w3wp 时未加载符号

php - MySQL5.6 vs Percona 5.7 隐式转换问题

php - Laravel 与 Docker 连接 MySQL 的问题

ASP.Net模块阻止DOS攻击

c# - 从列表<t>获取字符串

javascript - 将文本框动态添加到使用 Mysql Jquery 生成的每一行时出现错误

asp.net - 如何为整个 ASP.NET Web 项目提供一个 "HelperClass.IsLoggedIn()"方法?

jquery - 在 jquery post 到 Controller 中包含 @Model 属性