本文介绍了纯POCO实体和DetectChanges方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我使用了一些像这样的纯POCO实体:

Hi,

I use some pure POCO entities like this :


[Table("EntityA")]
public class EntityA
{
  [Key]
  public int Id { get; set; }
 
  public int EntityBId { get; set; }

  [ForeignKey("EntityBId")]
  public EntityB EntityB { get; set; }
}

[Table("EntityB")]
public class EntityB
{
  [Key]
  public int Id { get; set; }
}

推荐答案

欢迎!

首先,我我想谈谈Add和Attach方法之间的不同之处。 Add方法用于添加数据库中不存在的新创建的对象。 EF4.1 Code First将
实体的密钥设置为零。 ( http://blogs.msdn.com/b/adonet/archive/2011/01/29/using-dbcontext-in-ef-feature-ctp5-part-4-add-attach-and-enti ty-states.aspx)。 
当调用SaveChanges时,此实体将被设置为键值。

Firstly, I'd like to say something about the different between Add and Attach method. Add method is for adding newly created objects which don't exist in database. EF4.1 Code First will set entity's key to Zero. (http://blogs.msdn.com/b/adonet/archive/2011/01/29/using-dbcontext-in-ef-feature-ctp5-part-4-add-attach-and-entity-states.aspx). When SaveChanges is callded, this entity will be set a key value.

Attach用于已存在于数据库中的实体(未更改)。假设您附加的对象存在于数据库中,因此有一个键可以识别它们。 EF将帮助 
同步关系。

Attach is used for entities that already exist in database(unchanged). Objects that you are attaching are assumed to exist in database, so there is a key to identify them. EF will help to synchronize the relationships.

Attach方法和Add方法将自动调用EF4.1中的DetechChanges方法,因此可以命令DetechChanges行。

The Attach method and Add method will automatically call DetechChanges method in EF4.1, so can command the DetechChanges line.

有美好的一天。


这篇关于纯POCO实体和DetectChanges方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-11 15:49