Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Entity framework 实体框架从内存中提取对象_Entity Framework - Fatal编程技术网

Entity framework 实体框架从内存中提取对象

Entity framework 实体框架从内存中提取对象,entity-framework,Entity Framework,我一直在使用实体框架,一直认为实体框架为程序员创建了一个抽象层,但我一直在问这种代码是否可能。当我创建实体并且不保存db上下文时,无法从上下文中提取此对象!?有线电视,否则我会对EF感到困惑 using (Entites db = new Entites()) { tblSysState state = new tblSysState() {

我一直在使用实体框架,一直认为实体框架为程序员创建了一个抽象层,但我一直在问这种代码是否可能。当我创建实体并且不保存db上下文时,无法从上下文中提取此对象!?有线电视,否则我会对EF感到困惑

   using (Entites db = new Entites())
            {
                tblSysState state = new tblSysState()
                                        {
                                            Id = Guid.NewGuid(),
                                            Code = "k",
                                            Description ="Just teste"
                                        };

                db.tblSysState.AddObject(state);
                Object ft = db.tblSysState.SingleOrDefault(x => x.Code.Equals("k"));


            }

这是可能的,但不能通过查询
ObjectSet
本身来实现。您必须访问上下文的内部存储。像这样的方法应该会奏效:

var state = db.ObjectContext
              .GetObjectStateEntries(EntityState.Added)
              .Where(e => !e.IsRelationship)
              .Select(e => e.Entity)
              .OfType<tblSysState>()
              .SingleOrDefault(e => e.Code == "K");
var state=db.ObjectContext
.GetObjectStateEntries(EntityState.Add)
.其中(e=>!e.IsRelationship)
.选择(e=>e.Entity)
第()类
.SingleOrDefault(e=>e.Code==“K”);

但在这种情况下,我需要知道要提取的对象的状态(添加、删除等),例如,如果要迭代所有状态,则需要从ObjectSet获取一些对象,从上下文的内部存储获取其他对象!这不是一般流程1您只对处于添加状态的实体感兴趣,因为其他实体在数据库中,您可以以正常方式查询它们。如果要查询上下文中存储的任何状态的实体,请使用
(~EntityState.Detached)
。没有查询本地和数据库数据的通用过程,这是设计的。