Tengo una tabla en mi DB llamada CompanyDetails
. Tiene una columna llamada CharacterID varchar(255)
. Lo cambié de una columna NOT NULL
a una columna NULL
. Ejecuté el comando 'Actualizar el modelo desde la base de datos ...' en el navegador de modelos y en el visor de archivos EDMX. Esto es lo que crea en el diseñador:Entity Framework - Actualizar el modelo de la base de datos ... - ¡no ocurre ninguna actualización!
/// <summary>
/// There are no comments for Property CharacterId in the schema.
/// </summary>
[global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute(IsNullable=false)]
[global::System.Runtime.Serialization.DataMemberAttribute()]
public string CharacterId
{
get
{
return this._CharacterId;
}
set
{
this.OnCharacterIdChanging(value);
this.ReportPropertyChanging("CharacterId");
this._CharacterId = global::System.Data.Objects.DataClasses.StructuralObject.SetValidValue(value, false);
this.ReportPropertyChanged("CharacterId");
this.OnCharacterIdChanged();
}
}
private string _CharacterId;
partial void OnCharacterIdChanging(string value);
partial void OnCharacterIdChanged();
/// <summary>
/// There are no comments for Property URLDomain in the schema.
/// </summary>
[global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute()]
[global::System.Runtime.Serialization.DataMemberAttribute()]
public string URLDomain
{
get
{
return this._URLDomain;
}
set
{
this.OnURLDomainChanging(value);
this.ReportPropertyChanging("URLDomain");
this._URLDomain = global::System.Data.Objects.DataClasses.StructuralObject.SetValidValue(value, true);
this.ReportPropertyChanged("URLDomain");
this.OnURLDomainChanged();
}
}
private string _URLDomain;
partial void OnURLDomainChanging(string value);
partial void OnURLDomainChanged();
Usted se dará cuenta de que tiene un atributo de:
[global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute(IsNullable=false)]
También incluí la siguiente propiedad y se dará cuenta de que está marcado correctamente como:
[global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute()]
¿Qué ocurre? ¿Cómo puedo hacer cambios simples en mi esquema de base de datos y realmente obtener el marco de la entidad para actualizar en función de esos cambios? ¡Tuve que dejar caer y recrear el modelo cada vez que hubo un cambio!
+1. Esto es correcto. Si ya generó una propiedad en CSDL, debe actualizarla manualmente. Pero el SSDL siempre se regenerará desde cero. EF supone que quieres tus personalizaciones CSDL. –
Gracias Craig. Como nota adicional, creo que puede usar la herramienta edmgen (http://msdn.microsoft.com/en-us/library/bb387165.aspx) con el interruptor/modo: FromSSDLGeneration o/mode: FullGeneration para forzar la generación de CSDL + MSL o todos los bloques, si eso es lo que necesita. –
¿Dónde encuentro estos 3 archivos y los tengo que editar manualmente cada vez que realizo cambios como este? He hecho una búsqueda en mi disco duro y no puedo encontrar estos archivos, así que me pregunto si se generaron internamente, y si es así, ¿cómo los abro? (¡Qué nueva pregunta!) :) –