如何使用SQL Metal或代码设置自动生成值和自动同步

时间:2012-07-25 15:48:32

标签: 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

这一切都很好,我可以在我的桌子上做所有的CRUD功能......差不多......

我有一个“标题”表,其字段类型为“uniqueidentifier”...当我插入新记录时,我希望数据库将值分配给记录,并使我的标题表记录更新为来自数据库的新guid。目前,我添加到表中的任何新记录都有id guid字段的全部零。所以当我尝试添加第二条记录时,它会因重复键而失败。

在我寻找答案时,我发现了这篇文章: SQL Server 2008 GUID column is all 0's

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

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

我应该使用dbml文件而不是地图文件???

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

非常感谢......

0 个答案:

没有答案