c# - 如何使用 EF 将对象保存到数据库并从数据库中创建主键?

标签 c# entity-framework

我正在使用 C#、.NET Framework 4.0 开发 WCF JSon Web 服务,使用 Entity Framework 访问数据库。

我必须创建一个新的 EReportDB.EReport 对象,填充它,将其保存在数据库中并获取其新的 pk EReportDb.Ereport.eReportId

这是我的代码,但我不知道该怎么做:

    public bool SaveEReport(EReportContract eContractReport)
    {
        if (eContractReport == null)
            throw new ArgumentNullException("eContractReport", "SaveEReport: eReport is null");

        using (EReportDB.EReportEntities context = new EReportDB.EReportEntities())
        {
            EReportDB.EReport eReport = new EReportDB.EReport();
            eReport.orderId = eContractReport.orderId;
            eReport.timeIn = DateTime.Parse(eContractReport.timeIn, new CultureInfo("en-GB", false));
            eReport.timeOut = DateTime.Parse(eContractReport.timeOut, new CultureInfo("en-GB", false));
            eReport.isProducFact = eContractReport.isProducFact;
            /*
              ..snip..
            */
            eReport.olPkSizeRs_ = eContractReport.olPkSizeRs;
            eReport.olPkWeightRs = eContractReport.olPkWeightRs;
        }
        return false;
    }

我该怎么做?

最佳答案

int id = 0; // assuming the datatype for eReportId is int

using (EReportDB.EReportEntities objectContext = new EReportDB.EReportEntities())
{
   EReportDB.EReport eReport = new EReportDB.EReport();
   eReport.orderId = eContractReport.orderId;
   eReport.timeIn = DateTime.Parse(eContractReport.timeIn, new CultureInfo("en-GB", false));
   eReport.timeOut = DateTime.Parse(eContractReport.timeOut, new CultureInfo("en-GB", false));
   eReport.isProducFact = eContractReport.isProducFact;
   /*
     ..snip..
   */
   eReport.olPkSizeRs_ = eContractReport.olPkSizeRs;
   eReport.olPkWeightRs = eContractReport.olPkWeightRs;

   objectContext.AddObject(eReport); // method to insert the entity 
   objectContext.SaveChanges();
   id = eReport.eReportId;

   transaction.Complete();
}

id是插入记录的PK。

关于c# - 如何使用 EF 将对象保存到数据库并从数据库中创建主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13249888/

相关文章:

c# - 从方法返回 <list> 值

entity-framework - 在 EF Code First 中映射 Twitter 风格关注者的关注关系

c# - EF Core 以编程方式更改隔离级别?

c# - XStreamingElement 作为 XDocument 的一部分

c# - ASP.NET Azure Web应用程序频繁重定向到登录页面

c# - 在命令提示符 (cmd) 中执行 C#

entity-framework - 删除Collection的步骤已修改;枚举操作可能无法执行。错误?

C#类库如何添加启动代码

c# - 如何使用 ASP.NET Identity 2.0.1 将角色更改强制传播给用户?

sql - 如何在 Entity Framework 中手动添加复合关联?