in

Dé specialist in .NET trainingen en consultancy

Jo-wen Mei

augustus 2008 - Posts

  • Programmatisch storyboards beheren in WPF

    Storyboards zijn heel makkelijk te definieren en te beheren vanuit Expression Blend.

    Maar wat nu als je de storyboard handmatig wilt starten/pauzeren/stoppen?

    Hiervoor bestaan de volgende methodes: Begin(), Pause() en Stop().

    Alle drie de methodes vragen als eerste parameter een Framework(Content)Element. Meestal kun je hier de huidige class voor gebruiken: this.

    De truuk zit hem in de 2e parameter van Begin(): bool IsControllable

    deze geeft namelijk aan of je de storyboard zelf kan controleren, en deze is standaard false!

     

    de code ziet er dan als volgt uit:

    public partial class Window1 : Window

    {

    private Storyboard _story;

    public Window1()

    {

    InitializeComponent();

    _story = this.TryFindResource("Storyboard1") as Storyboard;

    }

     

    private void StartButton_Click(object sender, RoutedEventArgs e)

    {

    _story.Begin(this, true);

    }

     

    private void PauseButton_Click(object sender, RoutedEventArgs e)

    {

    _story.Pause(this);

    }

    private void StopButton_Click(object sender, RoutedEventArgs e)

    {

    _story.Stop(this);

    }

     

    Posted aug 04 2008, 11:36 by Jo-wen with no comments
    Filed under:
  • EF Faq

    veel handige info over Entity Framework

     

  • Identity columns in EF

    Ik ben bezig met een kleinschalig project, en heb in de db gekozen voor integers als primary keys.

    De db zorgt zelf voor unieke id's en hoogt de integer elke keer één op.

    Ik probeerde een nieuw record te inserten met behulp van het EF, en omdat de db de id's regelde deed ik hier niets mee in code.

    Dan kreeg ik de foutmelding: "Cannot insert explicit value for identity column in table 'xx' when IDENTITY_INSERT is set to OFF."

    Hoewel ik de id property zelf geen waarde heb toegekend, heeft deze natuurlijk de default waarde 0!

     

    Dit probleem is eenvoudig op te lossen. Je kan het model kenbaar maken dat je gebruikt maakt van identity columns.

    voeg het attribuut StoreGeneratedPattern="Identity" toe aan je ID property in je ssdl:

    <Property Name="ID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />

    dan wordt de waarde van de ID property niet gebruikt om deze te inserten in de db, EN krijgt deze na de insert de juiste waarde uit de db!

     

    ps: het pattern met de GUID's wordt nog niet volledig ondersteund