【发布时间】:2022-01-21 04:02:21
【问题描述】:
在插入/添加过程中,我可以在一个写入/保存过程中创建一个与新值主键相等的不同列吗?这是一个身份自动生成的值?我知道我可以事后抓住并进行更改,但这是我试图避免的额外数据库命中。
public class myDataTableRec
{
public int Id { get; set; } //This is an Identity Primary Key
public string Name { get; set; }
public int PostId { get; set; } //Want this the same as Id when it gets generated
}
myrec = new myDataTableRec;
db.myDataTable.Add(myrec);
db.SaveChanges();
【问题讨论】:
-
主要问题是:为什么您希望将相同的值存储在对象的两个单独变量中吗?似乎并没有多大意义......并且“正确”执行此操作的唯一方法是在
INSERT之后在您的数据库表上放置一个触发器,这也会将PostId设置为新插入的标识值。 -
试图让这个表存储主记录和详细信息,因为它们具有相同的列。将所有主数据和详细数据与主身份记录以相同的 id 分组。也许这不是好的架构。所以 postid 只会在主记录上是相同的,如果我留在一个 db 中,那么一个读取会抓住它,而不是两个 dbs。
-
将规则设为“如果父项为空,则为主记录”是否更容易?
-
这不会让我一拉就抓住所有主/细节记录,这是目标。我将重新考虑我的策略。
标签: c# sql entity-framework