Ich habe eine Tabelle in meiner Datenbank CompanyDetails
. Es hat eine Spalte namens CharacterID varchar(255)
. Ich habe es gerade von einer NOT NULL
Spalte zu einer NULL
Spalte geändert. Ich habe den 'Update Model From Database ...'-Befehl sowohl im Modellbrowser als auch im EDMX-Dateibetrachter ausgeführt. Dies ist, was es in dem Designer erstellt:Entity Framework - Update Model from Database ... - keine Aktualisierung passiert!
/// <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();
Sie werden feststellen, dass es ein Attribut hat:
[global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute(IsNullable=false)]
Ich habe auch die nächste Eigenschaft, und Sie werden feststellen, dass es richtig als gekennzeichnet:
[global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute()]
Was gibt? Wie kann ich einfache Änderungen in meinem DB-Schema vornehmen und das Entity Framework basierend auf diesen Änderungen wirklich auf den neuesten Stand bringen ?! Ich musste das Modell jedes Mal fallen lassen und neu erstellen, wenn sich etwas geändert hat!
+1. Dies ist richtig. Wenn Sie in CSDL bereits eine Eigenschaft generiert haben, müssen Sie sie manuell aktualisieren. Aber die SSDL wird immer von Grund auf neu erstellt. Die EF setzt voraus, dass Sie Ihre CSDL-Anpassungen vornehmen möchten. –
Danke Craig. Als zusätzliche Anmerkung glaube ich, dass Sie das Tool edmgen (http://msdn.microsoft.com/en-us/library/bb387165.aspx) mit dem Schalter/mode: FromSSDLGeneration oder/mode: FullGeneration verwenden können, um die Generierung von zu erzwingen die CSDL + MSL oder alle Blöcke, wenn Sie das brauchen. –
Wo finde ich diese 3 Dateien und muss ich sie bei jeder Änderung manuell bearbeiten? Ich habe eine Suche auf meiner Festplatte durchgeführt und kann diese Dateien überhaupt nicht finden, also frage ich mich, ob sie intern erzeugt werden, und wenn ja, wie öffne ich sie? (Was für eine neue Frage!) :) –