2

私の MS SQL 2014 データベース テーブルには、データベース関数を使用する計算プロパティ列があります。SQL Server Management Studio を使用して、テーブルに対するクエリを実行すると、計算されたプロパティ値が期待どおりに一覧表示されます。

インポート ウィザードで作成された Codefluent モデルは、プロパティとして計算列を持つエンティティを示します。基になる .cpf ファイルは、"d3p1:compute=" とデータベース関数で使用されるパラメーターのリストを使用してプロパティを定義します。

エンティティまたはエンティティのコレクションが読み込まれると、計算されたプロパティで使用されるプロパティには値がありますが、計算されたプロパティには何もない/null の値があります。

Codefluent にデータベース テーブルから計算された値を読み取らせ、その値をエンティティのプロパティに含めるにはどうすればよいですか?

4

2 に答える 2

1

これは少しトリッキーです。まず、他のプロパティと同様にプロパティを宣言する必要があります。次に、その列で式を宣言するように SQL プロデューサに指示する必要があります。computeこれは、SQL プロデューサー名前空間のカスタム ' ' 属性で行うことができます。次のように Visual Studio モデラーで設定できます。

ここに画像の説明を入力

intこの例では、別の列の値を 2 倍しただけのプロパティを作成しました。

ほとんどの場合、ロード操作時だけでなく、保存後に計算された値を読み取りたいため、必要に応じてプロパティを「保存時に読み取る」と宣言できます。

ここに画像の説明を入力

これがすべて完了すると、このサンプル コンソール アプリは 30 を表示するはずです。

class Program
{
    static void Main(string[] args)
    {
        var c = new Customer();
        c.Name = "killroy";
        c.Age = 15;
        c.Save();
        Console.WriteLine(c.Age2); // will display 30
    }
}
于 2016-09-06T06:55:59.647 に答える