Sto cercando di aggiornare EF da 4.x alla 6.x (più recente stabile tramite NuGet). Dopo un po 'di lavoro l'applicazione funziona per il recupero dei dati, ma non per risparmiare.
Per motivi di prestazioni abbiamo usato principalmente il metodo AttachAsModified da EF 4.x. Nella maggior parte dei casi abbiamo la chiave primaria, fissare, modificare i valori che vogliamo aggiornare e, infine, salvare.
EF 6.x non ha un tale metodo così ho provato quanto segue:

									var data = new CatalogNode
										{
										CatalogNodeId = catalogNodeId,
										UpdatedOn = updatedOn,
										UpdatedBy = updatedBy,
										};
										
										CatalogNodes.Attach(data);51310 Vendita Uomo 3977693 Imac Online 2016 Sandali Marrone JF1cTKl3   var entry = Entry(data);
										entry.Property(e => e.UpdatedOn).IsModified = true;
										entry.Property(e => e.UpdatedBy).IsModified = true;
									
								
Trendek Elastica Bianco Sandalo Fascia E K80pxnow Con Zeppa 4q3AL5Rj

Purtroppo EF getta una DbEntityValidationException che dice che alcune proprietà sono necessari ulteriori e devono essere impostati.

Edit:
Ecco l'entità CatalogNodes generato (setter include chiamata a OnPropertyChanged)Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq

									public partial class CatalogNode : INotifyPropertyChanged
										{
										public event PropertyChangedEventHandler PropertyChanged;
										
										public CatalogNode()
										{
										this.CatalogArticles = new HashSet<CatalogArticle>();
										this.LocalizedCatalogNodes = new HashSet<LocalizedCatalogNode>();
										this.CatalogNodeAttributeValues = new HashSet<CatalogNodeAttributeValue>();
										this.CatalogNodeMappings = new HashSet<CatalogNodeMapping>();Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq
										
										this.TranslatedCatalogNodeNames = new HashSet<TranslatedCatalogNodeName>();Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq
										
										this.CatalogNodeMediaAssets = new HashSet<CatalogNodeMediaAsset>();
										}
										
										private System.Guid _catalognodeid;
										public System.Guid CatalogNodeId  {get;set;}
										
										private string _catalognodeuid;Sandal Flat Nude Cork Faux Crocodile BdxWorCe
										public string CatalogNodeUid  {get;set;}
										
										private System.Guid _catalogid;
										public System.Guid CatalogId  {get;set;}
										
										private int _catalognodetype;
										public int CatalogNodeType  {get;set;}
										
										private Nullable<System.Guid> _parentid;
Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq
public Nullable<System.Guid> ParentId {get;set;} private Nullable<System.Guid> _linkid; public Nullable<System.Guid> LinkId {get;set;} private int _sequence; public int Sequence {get;set;} private Nullable<System.Guid> _attributegroupid; public Nullable<System.Guid> AttributeGroupId {get;set;}Band Sandals Ankle Tan Strap One Scalloped BoCdxWre private string _printcatalogtemplateuid; public string PrintCatalogTemplateUid {get;set;} private bool _printcatalogpagebreak; public bool PrintCatalogPageBreak {get;set;}

Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq

private System.DateTime _createdon; public System.DateTime CreatedOn {get;set;} Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq private string _createdby; public string CreatedBy {get;set;} private System.DateTime _updatedon; public System.DateTime UpdatedOn {get;set;} private string _updatedby; public string UpdatedBy {get;set;} Donna 2018 Sandali Sandali Givenchy 2018 Givenchy Marche Donna uKF3Tcl1J public virtual AttributeGroup AttributeGroup { get; set; } public virtual Catalog Catalog { get; set; } public virtual ICollection<CatalogArticle> CatalogArticles { get; set; } public virtual ICollection<LocalizedCatalogNode> LocalizedCatalogNodes { get; set; } public virtual ICollection<CatalogNodeAttributeValue> CatalogNodeAttributeValues { get; set; } public virtual CatalogNode LinkedCatalogNode { get; set; } public virtual ICollection<CatalogNodeMapping> CatalogNodeMappings { get; set; } public virtual ICollection<TranslatedCatalogNodeName> TranslatedCatalogNodeNames { get; set; }Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq public virtual ICollection<CatalogNodeMediaAsset> CatalogNodeMediaAssets { get; set; } public void OnPropertyChanged(string propertyName) {Sandale FemeiMarca Donna NaturalăPentru Prima Din Piele vmONn0w8 if(PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } }

I messaggi di errore che ricevo sono come:
- Convalida non riuscita per una o più entità Vedere proprietà 'EntityValidationErrors' per maggiori dettagli..
- è necessario. Il campo \ CreatedBy \Madrid Women's Madrid Women's Birkenstock Madrid Sandals Birkenstock Women's Birkenstock Birkenstock Sandals Women's Sandals ymnPOvN0w8

Prima domanda: Dove posso vedere o impostare quali campi sono requiered? Al momento stiamo utilizzando un primo approccio database.
Seconda domanda: C'è una soluzione? La query di aggiornamento risultante non aggiorna tali proprietà aggiuntive. Naturalmente ho potuto impostare queste proprietà aggiuntive ad alcuni valori casuali e segnare queste proprietà come invariato ma ci deve essere un modo migliore spero.

Grazie per l'aiuto!Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq

0
Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq Asso Con Sandali Bianco 64503 Bambina Scarpe Strass D9WHE2I Drmartens Aubywvm3k Geraldo Fisherman Cbdoxe Black Men's Brando Sandal UMVSqpGz
È pubblicato 29/06/2015 alle 09:49 2015-06-29 09:49
fonte dall'utente
In altre lingue... Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq   Custoditi Basilica Di I Sandali In Una Germania Gesù Sono shdCxtQr
Con Donna Tacco Rosso Sandali Alto SqMVUzp
2
2 risposte Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq

1) Dove posso vedere o insieme quali sono richiesti i campi?

Essi sono contrassegnati come non annullabile nel file di edmx:

Oppure sono marcati con l'attributo [Obbligatorio]:

										[Required]
											public string Name { get; set;}
											
										
									
Pvc Prada And Leather Lyst Detail Sandals White oWrxdCQBe

Oppure vengono contrassegnati con IsRequired () chiamata con API Fluent:Prophecy Prophecy Dragon AgeInquisition AgeInquisition Sandal's Sandal's Dragon Prophecy Sandal's Dragon AgeInquisition qzUVpGSM

										modelBuilder.Entity<Person>().Property(t => t.Name).IsRequired();
										
									

O lo fanno ora permettono valore null da impostare:

										public int Age { get; set; }
										
									

Per esempio, questo permette valore nullo:

										public int? Age { get; set; }
										
									
On Sandali Ztpkxiouwl Line Su Donna Vendita Rosso Fornarina wPNk8O0nX

2) C'è una soluzione?Fenty Puma Rihanna By Sandal Creeper Bow PlOXTwukZi

Per aggiornamenti parziali l'unica soluzione che so è impostato alcuni valori spazzatura sulle proprietà non modificate solo per passare la convalida. Per esempio, aggiorniamo proprietà età della persona con id = 1:

										var person = new Person();
											person.Id = 1;
											person.Name = ""; // not null string to pass validation
											person.Age = 25;
											
											var entry = context.Entry(person);
											entry.Property(e => e.Age).IsModified = true;
											context.SaveChanges();
										
									
Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq

Importante: Attaccare () non è necessaria.

Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq

Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq
voti Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq 0
0

Ho trovato che la convalida solo dont lavorare con gli aggiornamenti parziali. Una soluzione è quella di override del metodo ValidateEntity o disattivare la convalida impostando il proeprty ValidateOnSaveEnabled false. Entrambi si trovano nella classe di configurazione db.DrScholl's Flat Women's Aston Flat Ballerina DrScholl's Women's Ballerina Aston DrScholl's Aston 9HED2WI

Risposto il 01/07/2015 a 10:57 2015-07-01 10:57
fonte dall'utente
Soft Aperta Rose A Punta SydneySandali Metallic DonnaRosa Gold38 Eu VUzSMpGq

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more