Domyślne wartości bardzo łatwo ustawić za pomocą wizualnego edytora EntityFramework. Wystarczy ustawić właściwość Default w oknie properties:
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.
Dokładnie tak samo jest w przypadku LINQ To SQL Classes