c# - Linq-to-Entity 在插入 Oracle 时取回主键

标签 c# oracle entity-framework linq-to-entities

我是 Linq-to-Entity 的菜鸟。这些是我的数据库表。

create table Jobs 
( ID            NUMBER PRIMARY KEY,
  ....
)

create table Responsibilities
( ID            NUMBER PRIMARY KEY,
  JobID         NUMBER
  ....
)

JobID 列是引用 Jobs(ID) 的外键。

使用这些表,在 Visual Studio 中我会自动创建允许我连接到这些表的类。然后我尝试创建作业并将它们插入数据库。我在每个表上都有触发器,为每个表的主键生成唯一的 ID。下面是创建作业的代码片段。

using (Workflow.WorkflowEntities entity = new Workflow.WorkflowEntities(connectionString))
{
    JOBS j = new JOBS();
    entity.AddToJOBS(j);
    entity.SaveChanges();

我遇到的一个问题是,当保存作业时,我没有得到它的主键。当我想要创建职责对象并将它们添加到作业中,然后批量保存所有内容时,这尤其是一个问题。就像它没有正确填充 Responsibilities 对象中的 JobID 字段一样。

正确的做法是什么?非常感谢任何指点,

米杰

最佳答案

我找到了答案。本页最后一篇文章的第三个。

https://forums.oracle.com/forums/thread.jspa?messageID=9904561

显然 Visual Studio 2010 没有正确保存 XML 中的 StoreGeneratePattern 属性。

编辑 1:我认为 Visual Studio 2010 Service Pack 1 修复了此问题。

关于c# - Linq-to-Entity 在插入 Oracle 时取回主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12697686/

相关文章:

oracle - 如何检查存储过程是否存在?

entity-framework - 在 EF 4.3 中使用参数执行存储过程时,对象类型 System.Collections.Generic.List 不存在映射

c# - 使用不带表单的输入类型=文件

c# - 禁用 Android 双击 Xamarin Forms 标签

mysql - 您可以使用触发器修改插入时的外键吗?

c# - 在 EF : MaxAsync vs LastAsync? 中获取最后一个可能的 Id 哪个更快/更好

asp.net-mvc - EntityFramework.SqlServer 未部署在 Web 发布中

c# - DotNetZip:将文件添加到动态创建的存档目录

c# - 在用 C# 加密的 SQL Anywhere 16 中解密 AES,反之亦然

oracle - TNSPING 确定,但 sqlplus 给出 ORA-12154?