2010-06-08 6 views
3

Si le modèle de stockage possède l'ensemble d'attributs d'identité StoreGeneratedPattern =, pourquoi le modèle conceptuel ne devrait-il pas refléter cela d'une manière ou d'une autre? Dans et attribuer ou dans une nature de lecture d'une propriété? Si j'ai besoin de transmettre une valeur au champ de référence.StoreGeneratedPattern dans Entity framework

Répondre

3

Il devrait. Et ça fonctionne quand ça fonctionne correctement. Ce que vous voyez probablement est le résultat d'un bug in the designer.

Lorsque vous définissez cette propriété dans le concepteur dans VS2010 RTM, it only adds an annotation tag in the CSDL and does not add anything in the SSDL, so it doesn't treat it as read-only. Étonnamment, le même ou très similaire bug existait dans EF 1.0!

Si vous éditez la section SSDL à la main, cela fonctionnera comme annoncé dans la documentation. Vous avez juste à refaire, ou fusionner vos modifications lorsque vous régénérez votre modèle.

+0

Si vous voulez éviter la partie xml-édition (et d'avoir à traquer où le SSDL et CSDL diffère), j'ai un complément qui ajoute un 'Model Comparer' pour les modèles EFv4 à VS2010. Il montre des différences telles que store-gen, type de données, nullability, maxlength/precision/scale, membres manquants, entités manquantes etc. entre les trois couches (db, SSDL, CSDL), génère des rapports et permet une resynchronisation facile des différences individuelles ou toutes les différences. Plus d'infos, et screencast-demos sur: http://huagati.blogspot.com/2010/08/using-model-comparer-to-generate.html – KristoferA

+0

nous commençons un nouveau projet MVC 4 en utilisant VS2012, EF 5 et ODP.NET pour Oracle 11 et nous éprouvons exactement le même problème. Chaque fois que nous "générons une base de données à partir d'un modèle", la partie ssdl du fichier edmx perd l'attribut "storedGeneratedPatter = Identity". Comptez-vous également un correctif pour VS2012 et EF 5 prenant en charge Oracle? –