C# 如何设置自动生成的值以及与SQL Metal或代码中的自动同步

C# 如何设置自动生成的值以及与SQL Metal或代码中的自动同步,c#,linq-to-sql,sqlmetal,C#,Linq To Sql,Sqlmetal,我现在是凌晨1:30,所以如果这里有任何令人困惑的地方,我很抱歉。。这在我的脑海里似乎是有道理的……-) 我一直在使用SQLMetal为我的数据库表生成数据上下文 我使用命令: sqlmetal.exe /server:dbsvr\sqlexpress /database:"TestDB" /user:sa /password:password /namespace:DB_Data /context:DBDataContext /code:DBDataContext.cs /map:DB.map

我现在是凌晨1:30,所以如果这里有任何令人困惑的地方,我很抱歉。。这在我的脑海里似乎是有道理的……-)

我一直在使用SQLMetal为我的数据库表生成数据上下文

我使用命令:

sqlmetal.exe /server:dbsvr\sqlexpress /database:"TestDB" /user:sa /password:password /namespace:DB_Data /context:DBDataContext /code:DBDataContext.cs /map:DB.map
这一切都很好,我可以做我的表上的所有积垢功能,等等。。。好吧,差不多

我有一个“header”表,它有一个类型为“uniqueidentifier”的字段。。。插入新记录时,我希望数据库将值分配给该记录,并使用数据库中的新guid更新标题表记录。目前,我添加到表中的任何新记录的id guid字段都为零。。因此,当我尝试添加第二条记录时,由于出现了重复的密钥,它失败了

在寻找答案的过程中,我发现了以下帖子:

它提到在dbml中将“自动生成值”和“自动同步”分别设置为“True”和“OnInsert”

我的问题是,我没有dbml文件,因为它不是在我运行SQLMetal命令时创建的。我使用了.map文件生成参数。。 我意识到有一个“/dbml”标志,但我不知道该使用哪一个

我应该使用dbml文件而不是映射文件吗

或者,在代码中,当我创建一个新的头记录变量时,是否有一种方法可以告诉系统使用DB生成的ID值并更新我的记录变量……: recHdr.Id.AutoGeneratedVales=True; recHdr.Id.AutoSync=OnInsert

非常感谢