首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >EF4/6的插入方法差异

EF4/6的插入方法差异
EN

Stack Overflow用户
提问于 2015-04-14 21:15:46
回答 1查看 49关注 0票数 1

我最近才开始使用EF6。在过去,为了插入一个对象,它是类似于这个假示例的代码(我正在编写医疗软件,因此,生命周期):

代码语言:javascript
复制
using (DatabaseThingy ObjectContext = new DatabaseThingy(Connection))
{
     vitals pcrVital =  vitals.Createvital(0, pcrEntity.idPcr, timeTaken, pulse);
     ObjectContext.vitals.AddObject(pcrVital);
     ObjectContext.SaveChanges();
     return pcrVital;
}

现在我读到的每一篇文章都告诉我要这样做:

代码语言:javascript
复制
using (DatabaseThingy ObjectContext = new DatabaseThingy(Connection))
{
    vitals pcrVital = new vitals(){
             idVitals = 0,
             idPcr = pcrEntity.idPcr,
             timeTaken = timeTaken,
             pulse = pulse
    };
    ObjectContext.vitals.Add(pcrVital);
    ObjectContext.SaveChanges();
    return pcrVital;
}

当我使用EF6时,第一个方法不存在。第一种方法的好处是,如果EDMX是从已经存在的数据库中生成的,它将自动创建具有最小(非空)列(编辑)的构造函数。检查数据库以查看哪些是必需的是一件很简单的事情,但是将列表自动放入构造函数是非常棒的。

有没有人知道这背后的原因,或者我根本找不到它搬到哪里去了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-14 21:56:37

在EF4中使用的是ObjectContext,而使用DbContext的是EF6。生成代码背后的T4模板在这些版本之间是不同的,而早期的默认构造函数不再是可用的

在EF6中创建的POCO类比在EF4中创建的要轻得多,也更干净。恐怕你得自己去做。

您仍然可以使用下面的代码和访问方法(如ObjectContext )访问EF6中的AddObject。

代码语言:javascript
复制
(dbContext as IObjectContextAdapter).ObjectContext

不过,你不必再这样做了。使用DbSet中可用的DbContext来执行添加操作是一种更好的方法。

注意:有可用的T4模板可以为您提供早期的EF6类结构,尽管可能不推荐它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29637538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档