我有一个使用与GUID的作为表的主键数据库中的动态数据的实体的Web应用程序。所有GUID字段具有()设置为NEWID缺省值,SQL Server将产生一个新的GUID的任何记录。然而,在我的动态数据的网站,在插入新进入网页上的GUID字段显示出来,预计用户输入数据。我怎么能防止外地被显示?

有帮助吗?

解决方案

根据 MSDN

“你可以为你使用脚手架属性和其值设置为false做任何其他列隐藏主键。因为自动生成的密钥无法识别,则默认插入页面模板不与EDM工作对具有表自动主键除非创建部分类为实体和应用用的假值的支架属性“。

另外,顺便说一句是更好,如果你使用SQL Server 2005或更高版本,因为它的插入。

更有效地使用“NEWSEQUENTIALID()”中的Guid的默认值

其他提示

不是正确回答..

这样做之后,我做到了,你可以插入1分的记录,这将得到一个GUID与全零。之后,你会得到任何错误消息可言,但你会因为对GUID的唯一索引的约束(这当然是一个主键)的无法插入任何记录。

要真正解决这个问题,你必须编辑emdx文件,并添加

StoreGeneratedPattern="Identity"

进入“SSDL内容”的评论在您的GUID属性标记。例如:

   <Property Name="Guid" Type="uniqueidentifier" Nullable="false" StoreGeneratedPattern="Identity"/>

如果yhou为此在Visual Studio中的设计师将注释“CSDL内容”的评论不工作下的属性标记..

用于实体框架4.0的视觉工作室10和.NET框架4.0

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top