Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MySql&;实体框架导致;对象引用未设置为对象的实例。”;_C#_Mysql_Asp.net_Entity Framework_Nullreferenceexception - Fatal编程技术网

C# 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)失败了…

如果这有点含糊,请原谅……我正在使用MySql连接器作为基于实体框架的应用程序

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

对象引用未设置为对象的实例

在这一行:

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(DbExpressionVisitor
1
访客)+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,ReadOnlyCollection
1已编译查询参数,
别名生成器别名生成器)+453
System.Data.Objects.elink.elinkQueryState.GetExecutionPlan(可空 forMergeOption)+736
System.Data.Objects.ObjectQuery
1.GetResults(可空
forMergeOption)+131
System.Data.Objects.ObjectQuery
1.System.Collections.Generic.IEnumerable.GetEnumerator()
+36 System.Linq.Enumerable.SingleOrDefault(IEnumerable
1源)+179 System.Data.Objects.Elink.ObjectQueryProvider.b_uuu2(IEnumerable
1
顺序)+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();成功了!:-)非常感谢。美好的很高兴我能帮忙!