现在是凌晨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;
非常感谢......