EntityFramework i wartość domyślna wyliczana na podstawie funkcji

Domyślne wartości bardzo łatwo ustawić za pomocą wizualnego edytora EntityFramework. Wystarczy ustawić właściwość Default w oknie properties:

Clipboard01

Co jednak gdy chcemy ustawić wartość wyliczoną na podstawie jakieś funkcji? Dla przykładu może być to DateTime.Now bądź też Guid.NewGuid()?Wpisując w te same okienko dostaniemy błąd podczas kompilacji:

Error    1    Error 54: Default value (System.Guid.NewGuid()) is not valid for GUID. The value must be enclosed in single quotes in the form 'dddddddd-dddd-dddd-dddd-dddddddddddd'.    Persons.edmx    446    11    Crm

Na szczęście rozwiązanie jest bardzo proste – wystarczy stworzyć klasę Partial i w konstruktorze ustawiać wartość domyślną:

public partial class Person
{
    public Person()
    {
        this.ID_PERSON = Guid.NewGuid();
    }
}

Takim sposobem możemy manipulować danymi w dowolny sposób. Wszelkie konwersje danych nie są teraz problemem.

One thought on “EntityFramework i wartość domyślna wyliczana na podstawie funkcji”

Leave a Reply

Your email address will not be published.