Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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# ADO.NET实体数据模型(实体对象)_C#_Asp.net_Sql_Entity Framework_Ado.net - Fatal编程技术网

C# ADO.NET实体数据模型(实体对象)

C# ADO.NET实体数据模型(实体对象),c#,asp.net,sql,entity-framework,ado.net,C#,Asp.net,Sql,Entity Framework,Ado.net,我有实体实例(北) 问题是我没有访问ObjectContext方法的权限。我试图用对象“north”调用它们,但没有找到方法“AddObject”或ObjectContext中的任何其他方法。 我认为任何实体对象都具有ObjectContext类中的所有方法 这里的问题在哪里?对象上下文和实体是不同的对象;您可以使用ObjectContext添加/修改/删除对象,但实体无权直接访问ObjectContext 您需要创建ObjectContext的实例,并对其自身而不是实体执行操作。ObjectC

我有实体实例(北)

问题是我没有访问ObjectContext方法的权限。我试图用对象“north”调用它们,但没有找到方法“AddObject”或ObjectContext中的任何其他方法。 我认为任何实体对象都具有ObjectContext类中的所有方法


这里的问题在哪里?

对象上下文和实体是不同的对象;您可以使用
ObjectContext
添加/修改/删除对象,但实体无权直接访问
ObjectContext


您需要创建
ObjectContext
的实例,并对其自身而不是实体执行操作。

ObjectContext和实体是不同的对象;您可以使用
ObjectContext
添加/修改/删除对象,但实体无权直接访问
ObjectContext


您需要创建
ObjectContext
的实例,并对自身而不是实体执行操作。

只有上下文对象负责管理实体。只有上下文对象负责管理实体。我在VS2012中有一个示例,其中包含以下代码static int selectCustomerCount(){NorthwindEntities NorthwindEntities=new NorthwindEntities();字符串nativeSQLQuery=“从dbo.Customers中选择计数(*);var queryResult=NorthwindEntities.ExecuteStoreQuery(nativeSQLQuery);int customersCount=queryResult.FirstOrDefault();return customersCount;}在这里它可以工作,但当我尝试创建自己的对象时,我看不到带有实体对象的方法“ExecuteStoreQuery()”或“AddObject()”方法。为什么在这个示例中可以工作?但是为什么示例中的NorthwindEntities对象可以看到像“ExecuteStoreQuery()”、“AddObject()”和我的对象这样的方法?它们来自同一类型(NorthwindEntities)。您可以将光标放在NorthdatabaseEntity上并按F12键。NorthdatabaseEntity的基本类型是什么?当我按F12键时,我看到示例中的类“NorthwindEntities”是“公共部分类NorthwindEntities:ObjectContext”。我的对象来自同一个类“NorthwindEntities”,但当我按F12键时,我看到了“公共部分类NorthwindEntities:DbContext”。为什么当我创建自己的对象时,类继承DbContext,另一个从示例继承ObjectContext。这是我认为的问题,但为什么VS让它们从不同的类继承?是的。但我认为这里的问题是,我的类继承DbContext,而在F12中,我从“DbContext”更改改为“ObjectContext”,现在它可以按我想要的方式工作。但是使用F12更改类结构是一种好的做法吗?您认为如何?我在VS2012中有一个示例,其中包含以下代码static int selectCustomerCount(){NorthwindEntities NorthwindEntities=new NorthwindEntities();string nativeSQLQuery=“SELECT count(*)从dbo.Customers;var queryResult=northwindEntities.ExecuteStoreQuery(nativeSQLQuery);int customersCount=queryResult.FirstOrDefault();return customersCount;}这里它可以工作,但当我尝试创建自己的对象时,我看不到方法“ExecuteStoreQuery()”或“AddObject()”方法与我的实体对象。为什么在本例中有效?但为什么示例中的NorthwindEntities对象可以看到“ExecuteStoreQuery()”、“AddObject()”等方法,而我的对象不能看到?它们来自同一类型(NorthwindEntities)。您可以将光标放在NorthdatabaseEntity上并按F12键吗。NorthdatabaseEntity的基本类型是什么?当我按F12键时,我看到示例中的类“NorthwindEntities”是“公共部分类NorthwindEntities:ObjectContext”。我的对象来自同一类“NorthwindEntities”,但当我按F12键时,我看到了它“公共部分类NorthwindEntities:DbContext”。为什么当我创建自己的对象时,类继承DbContext,另一个从示例继承ObjectContext。这是我认为的问题,但为什么VS让它们从不同的类继承?是的。但我认为这里的问题是,我的类继承DbContext,而在F12中,我从“DbContext”更改到“ObjectContext”,现在它可以按照我想要的方式工作。但是用F12改变类结构是一个好的实践吗?你怎么看?
NorthdatabaseEntity north = new NorthdatabaseEntity()