VB.NET Entity Framework 上下文是否在创建时加载所有记录?
VB.NET Entity Framework Does context load all records when it's created?
我绝对是 entity framework 的新手。我最近发现了 ef,我认为它会很好地完成我的项目。我玩过它,但我对它的实际工作方式有点困惑。
情况是这样的。
联系人 table 有 id、fname、lname、phone 列。如果我 运行 一条记录下面的代码将被插入联系人 table.
Contact con = new Contact();
con.fname = TextBox1.Text;
con.lname = TextBox2.Text;
con.phone = TextBox3.Text;
ContactsDb db = new ContactsDb();
db.Contacts.AddObject(con);
db.SaveChanges();
我的问题是,当创建 ContactsDb 数据库时,它是否从 table 加载所有记录,然后 AddObject 将新联系人添加到该列表?
或者当我调用 AddObject 时,它只是将新联系人添加到一个空列表中,而 SaveChanges 会将联系人保存在该列表中?
我希望我描述得够多了,因为这是我第一次提问。
我担心的原因是,随着数据库变大,从 tables 加载所有记录将花费更多时间,如果数据库上下文在创建时确实加载了所有记录,则性能会成为问题。
提前致谢
Entity framework 使用延迟加载,这意味着只有在明确请求时才加载数据。您创建的数据库上下文对象仅充当数据库的接口。您对上下文所做的任何操作(如添加对象)仅在调用 .SaveChanges() 上下文时应用于数据库。 Entity Framework 然后设计一个查询来插入或检索数据,并将任何检索到的对象映射到您可以在代码中使用的关系实体。
我绝对是 entity framework 的新手。我最近发现了 ef,我认为它会很好地完成我的项目。我玩过它,但我对它的实际工作方式有点困惑。
情况是这样的。
联系人 table 有 id、fname、lname、phone 列。如果我 运行 一条记录下面的代码将被插入联系人 table.
Contact con = new Contact();
con.fname = TextBox1.Text;
con.lname = TextBox2.Text;
con.phone = TextBox3.Text;
ContactsDb db = new ContactsDb();
db.Contacts.AddObject(con);
db.SaveChanges();
我的问题是,当创建 ContactsDb 数据库时,它是否从 table 加载所有记录,然后 AddObject 将新联系人添加到该列表?
或者当我调用 AddObject 时,它只是将新联系人添加到一个空列表中,而 SaveChanges 会将联系人保存在该列表中?
我希望我描述得够多了,因为这是我第一次提问。
我担心的原因是,随着数据库变大,从 tables 加载所有记录将花费更多时间,如果数据库上下文在创建时确实加载了所有记录,则性能会成为问题。
提前致谢
Entity framework 使用延迟加载,这意味着只有在明确请求时才加载数据。您创建的数据库上下文对象仅充当数据库的接口。您对上下文所做的任何操作(如添加对象)仅在调用 .SaveChanges() 上下文时应用于数据库。 Entity Framework 然后设计一个查询来插入或检索数据,并将任何检索到的对象映射到您可以在代码中使用的关系实体。