我对是否使用DbSet.Create感到有点困惑,或者只是新建一个实体并添加它.我真的不明白使用DbSet.Create的后果.
据我所知,如果适用,DbSet.Create将创建一个代理版本,但我真的不明白这意味着什么.我为什么在意?在我看来,一个空的Proxied类并不比非代理类更有用,因为没有相关的实体来延迟加载.
除了显而易见的事情,你能告诉我差异吗?你为什么要关心?
我将这个Entity类与Entity Framework 5 Code First一起使用:
public class Survey
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public string SurveyName { get; set; }
[Required]
public int ClientID { get; set; }
[ForeignKey("ClientID")]
public virtual Client Client { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我的Controller的Create方法中,我这样做:
Survey entity = new Survey()
{
SurveyName = "Test Name",
ClientID = 4
};
db.Surveys.Add(entity);
db.SaveChanges();
Client c1 = entity.Client; //Why is this null?
Client c2 = db.Clients.Find(entity.ClientID); //But this isn't?
string s2 = c2.ClientName;
string s1 …Run Code Online (Sandbox Code Playgroud) lazy-loading ×1