相关疑难解决方法(0)

DbSet.Create与新实体()的分歧

我对是否使用DbSet.Create感到有点困惑,或者只是新建一个实体并添加它.我真的不明白使用DbSet.Create的后果.

据我所知,如果适用,DbSet.Create将创建一个代理版本,但我真的不明白这意味着什么.我为什么在意?在我看来,一个空的Proxied类并不比非代理类更有用,因为没有相关的实体来延迟加载.

除了显而易见的事情,你能告诉我差异吗?你为什么要关心?

entity-framework entity-framework-4.1

52
推荐指数
1
解决办法
7917
查看次数

实体框架:我设置外键,SaveChanges然后访问导航属性,但它不加载相关实体.为什么不?

我将这个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 ef-code-first entity-framework-5

36
推荐指数
2
解决办法
2万
查看次数