Je n'ai pas beaucoup d'expérience sur les services Web/couche d'abstraction de base de données pour Silverlight, et je suis pris en charge par un portage. Il y avait un développeur C# sur le projet qui n'est plus impliqué, et je travaille avec du code qu'il a écrit.Questions rapides sur la mise à jour du code de RIA Services Juillet Aperçu vers RIA Services 1.0
Je suis en train de mettre à jour le code d'un projet SL3 avec la version d'aperçu des services RIA vers SL4 avec RIA Services 1.0. Je fais référence le fichier RIA_Services_Breaking_Changes.doc pour mon effort de conversion de code à partir de l'adresse suivante: http://code.msdn.microsoft.com/RiaServices/Release/ProjectReleases.aspx?ReleaseId=3570
Mon raccrochage est ce que je pense est un fichier potentiellement généré automatiquement, et les erreurs impliquant Services RIA choses EntityCollection/EntityState.
HerculesModel.metadata.cs (avant la conversion début)
namespace Everest.Domain.Hercules
{
using System;
using System.ComponentModel.DataAnnotations;
using System.Web.Ria;
using System.Web.Ria.Data;
using System.Web.DomainServices;
using System.Data;
using System.Data.Objects.DataClasses;
// The MetadataTypeAttribute identifies AuthenticationTypesMetadata as the class
// that carries additional metadata for the AuthenticationTypes class.
[MetadataTypeAttribute(typeof(AuthenticationTypes.AuthenticationTypesMetadata))]
public partial class AuthenticationTypes
{
// This class allows you to attach custom attributes to properties
// of the AuthenticationTypes class.
//
// For example, the following marks the Xyz property as a
// required field and specifies the format for valid values:
// [Required]
// [RegularExpression("[A-Z][A-Za-z0-9]*")]
// [StringLength(32)]
// public string Xyz;
internal sealed class AuthenticationTypesMetadata
{
// Metadata classes are not meant to be instantiated.
private AuthenticationTypesMetadata()
{
}
public EntityState EntityState;
public EntityCollection<LoginAccounts> LoginAccounts;
public int TypeId;
public string TypeName;
}
}
...
}
Je mis à jour les références à l'aide aux nouveaux espaces de noms répertoriés dans la rupture des changements ci-dessus doc, et ont testé la construction. Visual Studio a ensuite énuméré les erreurs suivantes 274 fois dans le document:
Error 53 'EntityCollection' is an ambiguous reference between 'System.ServiceModel.DomainServices.Client.EntityCollection<Everest.Domain.Hercules.BookmarkedProfiles>' and 'System.Data.Objects.DataClasses.EntityCollection<Everest.Domain.Hercules.BookmarkedProfiles>' C:\...\Everest.Domain.Hercules\HerculesModel.metadata.cs 872 11 Everest.Domain.Hercules
Error 189 'EntityState' is an ambiguous reference between 'System.ServiceModel.DomainServices.Client.EntityState' and 'System.Data.EntityState' C:\...\Everest.Domain.Hercules\HerculesModel.metadata.cs 3501 11 Everest.Domain.Hercules
Je mis à jour le code, en ajoutant le qualificatif pour éliminer l'ambiguïté:
namespace Everest.Domain.Hercules
{
using System;
using System.ComponentModel.DataAnnotations;
using System.ServiceModel.DomainServices.Server;
using System.ServiceModel.DomainServices.Hosting;
using System.ServiceModel.DomainServices.Client;
using System.ServiceModel.DomainServices;
using System.Data;
using System.Data.Objects.DataClasses;
[MetadataTypeAttribute(typeof(AuthenticationTypes.AuthenticationTypesMetadata))]
public partial class AuthenticationTypes
{
internal sealed class AuthenticationTypesMetadata
{
private AuthenticationTypesMetadata()
{
}
public System.ServiceModel.DomainServices.Client.EntityState EntityState;
public System.ServiceModel.DomainServices.Client.EntityCollection<LoginAccounts> LoginAccounts;
public int TypeId;
public string TypeName;
}
}
...
}
Après avoir essayé de construire le code que je reçois le suivant erreur générale 160 fois, et je suis tout à fait coincé sur ces erreurs de TEntity:
Error 28 The type 'Everest.Domain.Hercules.Authentication.LoginAccounts' cannot be used as type parameter 'TEntity' in the generic type or method 'System.ServiceModel.DomainServices.Client.EntityCollection<TEntity>'. There is no implicit reference conversion from 'Everest.Domain.Hercules.Authentication.LoginAccounts' to 'System.ServiceModel.DomainServices.Client.Entity'. C:\...\Everest.Domain.Hercules\Authentication\AuthenticationModel.metadata.cs 358 85 Everest.Domain.Hercules
Je ReSharper installé pour Visual studio 2010, et il affirme que le seules les directives utilisées par le document sont System et System.ComponentModel.DataAnnotations. Comme je comprends les fichiers * .metadata.cs sont générés automatiquement, mais comment puis-je régénérer le fichier de métadonnées avec le soutien de cette nouvelle version de RIA Services? Ce projet utilise un framework MVVM open-source.
Merci un million pour toute aide que vous pouvez me fournir !!!