关键词:
【中文标题】使用 ObjectContext 获取关系记录的主键【英文标题】:Get primary key of relationship record with ObjectContext 【发布时间】:2016-03-21 13:08:56 【问题描述】:我尝试使用 EF 的 ChangeTracker
进行审核并保存数据库中的所有更改(添加 + 更新)。
所以使用ChangeTracker
我将能够获取所有更改的表,以及每个表的所有值。但是我还需要新表中新记录的ID。
其中一些是关系,当我尝试用EntityKey
获取值时,主键是0
private object GetPrimaryKeyValue(DbEntityEntry entry)
var objectStateEntry = ((IObjectContextAdapter)this).ObjectContext.ObjectStateManager.GetObjectStateEntry(entry.Entity);
return objectStateEntry.EntityKey.EntityKeyValues[0].Value;
有人知道,如果我走错路了,是否有可能获得相关实体的主键?
谢谢!
【问题讨论】:
我认为您需要检查您的数据库表。如果是主键,则不能为空(见***.com/questions/3876785/…)。 其实我说错了,不是null而是0。主键是表中自增字段。 【参考方案1】:我认为您会得到 0(即默认值(int)),因为自动增量(身份)列仅在保存完成后才会填充(即 dbContext.SaveChanges
已成功完成)。尝试读取SaveChanges()
之后的值,就像建议的here 一样。
这看起来像是一种捕获新添加值的方法,您必须重写 SaveChanges 并自己获取生成的值,就像提到的 here。
【讨论】:
是的,但我想做的是将所有新添加的值保存到另一个表中,因为我使用 EF 的 ChangeTracker 检索所有这些值。当涉及到现有数据的更新时,这不是问题,但在这种情况下,它是针对新行的,主键是 0 我在回答中添加了额外的参考。 请注意:由于我不喜欢触发器,我更喜欢 .NET 解决方案。但是,请记住,如果表数据可以由其他应用程序而不是您自己的应用程序更改,则触发器可能更合适。 好的,Alexei,您的建议和参考对我没有帮助,因为我得到了相同的结果,主键为 0。如果我在调用SaveChanges()
后进行审核,我会丢失EntityState
值(在这种情况下添加)但如果检查状态Unchanged
我新添加的对象包含所有值,因此带有 ID。您认为在为新添加的对象调用SaveChanges()
后使用未更改的状态是否正确?使用魔法记录从核心数据中获取关系实体
】使用魔法记录从核心数据中获取关系实体【英文标题】:Fetchrelationalentityfromcoredatausingmagicalrecord【发布时间】:2015-06-2516:06:15【问题描述】:我正在维护一个已经使用魔法记录(https://github.com/magicalpanda/MagicalRecord/wiki)作为核心... 查看详情
使用关系表从数据库中获取记录时出现问题
】使用关系表从数据库中获取记录时出现问题【英文标题】:Problemwhengettingrecordsfromdatabasewithrelationshiptable【发布时间】:2020-05-1503:28:45【问题描述】:我无法使用中间表将照片与标签关联起来。在下面的示例中,如何在Laravel中... 查看详情
使用分页从两个关系(一个是通过访问器)获取记录
】使用分页从两个关系(一个是通过访问器)获取记录【英文标题】:Getrecordsfromtworelations(oneispassthroughaccessor)withpaginate【发布时间】:2020-12-0604:50:31【问题描述】:Laravel7.x我需要从两个relations获取帖子。看:用户有帖子;用户... 查看详情
coredata 获取关系不存在的记录
...。现在我想选择那些与其他实体没有关系的记录。我尝试使用谓词(格式:“relation=%@”,nill),但这不起作用。如何在没有填充关系的情况下获取记录?【问题讨论】:tocheckanc 查看详情
通过 id 获取记录并使用 Laravel 和 eloquent 查询与“中间”的关系
】通过id获取记录并使用Laravel和eloquent查询与“中间”的关系【英文标题】:gettingrecordsbyidandqueryingthererelationwith\'wherebetween\'usingLaravelandeloquent【发布时间】:2021-08-1722:44:40【问题描述】:我正在尝试从某个记录器在某个时间跨度... 查看详情
获取mybaties插入记录自动增长的主键值
首先在MybatisMapper文件中insert语句中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是保存主键值的属性。 例如: <insertid="save"parameterType=“Survery"useGeneratedKeys="true"keyProperty="pkId"> in 查看详情
使用 jdbctemplate / jdbc for Hana db 获取序列生成的主键
】使用jdbctemplate/jdbcforHanadb获取序列生成的主键【英文标题】:Fetchprimarykeygeneratedbysequenceusingjdbctemplate/jdbcforHanadb【发布时间】:2017-04-0705:53:26【问题描述】:我们正在尝试在hanadb中插入记录,因此我们目前正在使用jdbc模板和密... 查看详情
Laravel Eloquent:获取包含两个特定关系的记录
...话。我现在需要获取两个特定用户参与的对话。我尝试了使用wher 查看详情
从关系中获取数据表的一条记录
...atable【发布时间】:2021-12-2104:17:11【问题描述】:我正在使用Laravelv8我有3个模型:Family、FamilyMember、FamilyRelationship家庭表:idaddresscreated_atupdated_at1testNULLNULL家庭关系表:idnamecreated 查看详情
关于:无法定义这两个对象之间的关系,因为它们附加到不同的objectcontext对象。个人解决方案
1publicclassUserClazz2{3publicUserUser{get;set;}4publicIList<Product>ProductList{get;set;}5}67publicclassUser8{9publicIList<Product>ProductList{get;set;}10publicIList<UserClazz>UserC 查看详情
Laravel - 以一对多关系获取最后一条记录
...onship【发布时间】:2018-06-2607:44:39【问题描述】:我正在使用5.5版的Laravel,我有一对多的关系。在第一个表(乘客)中,我有乘客登记表Passengersid|name1|Carlos2|Pedro在第二张表中,我有这些乘客的进出历史记录历史 查看详情
RestKit 使用指定的主键引用在默认关系中映射对象
】RestKit使用指定的主键引用在默认关系中映射对象【英文标题】:RestKitMappingobjectswithinadefaultrelationshipusingaspecifiedprimarykeyreference【发布时间】:2012-07-1314:48:46【问题描述】:我目前正在开发一个iOSMessenger应用程序,我想谈谈这... 查看详情
sqlserver外键关系有啥用?
最好能举个例子说一下。。还有内连接,外连接什么的。。讲的通俗一点。。谢谢了。。参考技术A SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不... 查看详情
使用两个表的主键的外键关系
】使用两个表的主键的外键关系【英文标题】:ForeignKeyrelationshipusingPrimaryKeyofbothtables【发布时间】:2017-07-0511:23:08【问题描述】:我们系统的所有用户都派生自一个主“用户”类。同样,我们希望以同样的方式构建我们的数据... 查看详情
数据库中的主键与外键的关系
文章目录一、主键、外键:1.概念2.区别3.作用4.举例:5.总结一、主键、外键:1.概念SQL的主键表示唯一标识一条记录,不能有重复的,不允许为空。例如:一条记录包括身份正号,姓名,年龄。身... 查看详情
javaweb_jdbc_jdbc获取数据库自动生成的主键值
...成主键值,那么我们就有必要获取这一个主键值。2.实现:使用重载的prepareStatement(sql,flag)来生成PreparedStatement对象,并调用ResultSetrs=prepared 查看详情
向下转换 ObjectContext 到实体集合
】向下转换ObjectContext到实体集合【英文标题】:DowncastObjectContexttoEntitiescollection【发布时间】:2013-08-0718:40:00【问题描述】:我在EF4.0中使用数据库优先方法创建了一个实体模型。我希望能够在没有app.config文件的情况下使用我的... 查看详情
如何从具有父子关系的模型中获取下一个和上一个记录
...子部分。所以在我的模型中,我将表格加入到自身中,并使用parent列我可以确定哪个部分是父/子。我的问题是如何检索小节的下一个和上 查看详情