C# MySql&;实体框架导致;对象引用未设置为对象的实例。”;
如果这有点含糊,请原谅……我正在使用MySql连接器作为基于实体框架的应用程序 我的内容表中有一条记录,我正在尝试获取该记录,但每当它尝试获取该记录时,我都会得到以下异常: 对象引用未设置为对象的实例 在这一行:C# MySql&;实体框架导致;对象引用未设置为对象的实例。”;,c#,mysql,asp.net,entity-framework,nullreferenceexception,C#,Mysql,Asp.net,Entity Framework,Nullreferenceexception,如果这有点含糊,请原谅……我正在使用MySql连接器作为基于实体框架的应用程序 我的内容表中有一条记录,我正在尝试获取该记录,但每当它尝试获取该记录时,我都会得到以下异常: 对象引用未设置为对象的实例 在这一行: Data.Entities.Content content = this.SiteData.Content.Take(1).SingleOrDefault(); 我已经检查过SiteData是一个实例(…它是),但是当我检查内容时,它似乎没有任何记录,所以我假设Take(1)失败了…
Data.Entities.Content content = this.SiteData.Content.Take(1).SingleOrDefault();
我已经检查过SiteData是一个实例(…它是),但是当我检查内容时,它似乎没有任何记录,所以我假设Take(1)
失败了…我可能是错的
以下是堆栈跟踪:
[NullReferenceException:对象引用未设置为
对象。]
MySql.Data.Entity.SelectStatement.GetDefaultColumnsForTable(TableFragment
表)+64
MySql.Data.Entity.SelectStatement.GetDefaultColumnsForFragment(InputFragment
输入)+90
MySql.Data.Entity.SelectStatement.AddDefaultColumns(作用域)+87
MySql.Data.Entity.SelectStatement.Wrap(作用域)+37
MySql.Data.Entity.SelectGenerator.WrapIfNotCompatible(SelectStatement
选择,DbExpressionKind expressionKind)+69
MySql.Data.Entity.SelectGenerator.Visit(DbLimitExpression)
+37 System.Data.Common.CommandTrees.DbLimitExpression.Accept(DbExpressionVisitor1
访客)+25
MySql.Data.Entity.SqlGenerator.VisitInputExpression(DBE表达式,
字符串名称,类型用法类型)+35
MySql.Data.Entity.SelectGenerator.VisitInputExpressionEnsureSelect(DbExpression
e、 字符串名称,类型用法类型)+21
MySql.Data.Entity.SelectGenerator.Visit(DbProjectExpression
表达式)+38
System.Data.Common.CommandTrees.DbProjectExpression.Accept(DbExpressionVisitor
1
访客)+25
MySql.Data.Entity.SelectGenerator.GenerateSQL(DbCommandTree树)+60
MySql.Data.MySqlClient.MySqlProviderServices.CreateDbCommandDefinition(DbProviderManifest
providerManifest,DbCommandTree commandTree)+329
System.Data.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree
命令树)+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
命令树)+125
System.Data.Objects.Internal.ObjectQueryExecutionPlan.Prepare(ObjectContext
上下文,DbQueryCommandTree树,类型elementType,合并选项
mergeOption,Span Span,ReadOnlyCollection1已编译查询参数,
别名生成器别名生成器)+453
System.Data.Objects.elink.elinkQueryState.GetExecutionPlan(可空
forMergeOption)+736
System.Data.Objects.ObjectQuery1.GetResults(可空
forMergeOption)+131
System.Data.Objects.ObjectQuery1.System.Collections.Generic.IEnumerable.GetEnumerator()
+36 System.Linq.Enumerable.SingleOrDefault(IEnumerable1源)+179 System.Data.Objects.Elink.ObjectQueryProvider.b_uuu2(IEnumerable1
顺序)+41
System.Data.Objects.Elink.ObjectQueryProvider.ExecuteSingle(IEnumerable
1
查询,表达式queryRoot)+59
System.Data.Objects.Elink.ObjectQueryProvider.System.Linq.IQueryProvider.Execute(表达式
表达式)+133
System.Data.Entity.Internal.Linq.DbQueryProvider.Execute(表达式
表达式)+87系统.Linq.Queryable.SingleOrDefault(IQueryable`1
source)+251 SamsCreative.Home.Page\u加载(对象发送方,事件参数)
e) 在g:\软件中
Development\Projects\SamsCreative\SamsCreative\Home.aspx.cs:17
System.Web.Util.CallEventHandlerDelegateProxy.Callback(对象发送方,
EventArgs e)+51 System.Web.UI.Control.OnLoad(EventArgs e)+92
System.Web.UI.Control.LoadRecursive()+54
System.Web.UI.Page.ProcessRequestMain(布尔值
IncludeStages前同步点,布尔值IncludeStages后同步点)
+772
我真的不知道是什么原因造成了这一切…任何帮助都将不胜感激 如“评论”中所述:
嗯……试试这个:
YourDbContext xxx = new YourDbContext();
var query = (from p in xxx select p).FirstOrDefault();
首先实例化DbContext。您应该在DbContext上添加dbConfigurationType属性
[DbConfigurationType(typeof(MySqlEFConfiguration))]
public class MysqlDbContext: DbContext
{
//Add your Dbsets here
public MysqlDbContext()
//Reference the name of your connection string
: base("ConnectionStringName")
{
}
}
尝试var content=this.SiteData.content.Take(1.SingleOrDefault()代码>;另一件事,这个
的内容是什么?@Tico…好的,我尝试使用var而不是指定确切的类型…同样的问题!。内容“应该”是指由一些字符串和几个小数组成的简单实体。this.SiteData是对DbContext实例的引用Hum…请尝试以下操作:YourDbContext xxx=new YourDbContext();var query=(从xxx中的p选择p).FirstOrDefault()代码>先实例化DbCOntext。啊!FirstOrDefault();成功了!:-)非常感谢。美好的很高兴我能帮忙!