StoreGeneratedPattern Property in ADO.NET Entity Model Designer sets CDSL annotation but not SSDL attribute.

Using the VS2010 ADO.NET Entity Model Designer for an .EDMX file to set the “StoreGeneratedPattern” Property of a database column (a feature not available at all in the ADO.NET Entity Model Designer of VS2008 SP1 — thanks for exposing that Property in the Designer, but right now it’s dangerous!) and associated Entity Property to “Identity” or “Computed” only sets the “a:StoredGeneratedPattern” Attribute in the Entity Property entry in the CDSL section of the file. It really should also set the “StoredGeneratedPattern” Property on the corresponding database column entry in the SSDL, or the expected behavior will not occur in LINQ-to-Entities code (Properties connected to such columns will not auto-populate after a SaveChanges is performed on the Entity Context, and worse, invalid null or default values will be written to those database fields, OVERWRITING what the database generated!).

 

Remember to always manually add the “StoredGeneratedPattern="(whatever)"” to the SSDL by manually editing the .EDMX in XML Editor mode whenever using (or instead of using, but then you have to add the corresponding annotation to the CDSL as well) the ADO.NET Entity Model Designer Property Window’s “StoredGeneratedPattern” Property, until this bug in the Designer has been fixed.

Failure to do so will result in code that does not function properly, and even can result in serious database value corruption!  

 

 

posted @ 2010-05-07 16:03  Ready!  阅读(414)  评论(0编辑  收藏  举报