Architect's Log

I'm a Cloud Architect. I'm highly motivated to reduce toils with driving DevOps.

internalなビジネスオブジェクトをObjectDataSourceは認識できない

internalなビジネスオブジェクトをObjectDataSourceは認識できません。

どういうこと?

以下のようなinternalなクラスを宣言し、ビルドします。

namespace WebApplication1 {
    internal class Biz {
        public void Hoge() {
        }
    }
}

次に、ObjectDataSourceを配置し、[データソースの構成]ウィザードを起動します。

ビジネスオブジェクトのコンボボックスにBizクラスが表示されません。

どうすれば?

クラスをpublicに変更し、ビルドします。

namespace WebApplication1 {
    public class Biz {
        public void Hoge() {
        }
    }
}

[データソースの構成]ウィザードを起動します。

Bizクラスが選択できるようになりました。

ObjectDataSourceの[データソースの構成]ウィザードにビジネスオブジェクトが表示されない

ObjectDataSourceの[データソースの構成]ウィザードは、デフォルトではTableAdapterしかコンボボックスに表示されません。


他のビジネスオブジェクトを選択したい場合は、[データコンポーネントのみを表示]のチェックボックスを外すとコンボボックスに表示されるようになります。

ObjectDataSource 'ObjectDataSource1' の DataObjectTypeName プロパティによって指定された型上の 'hoge' というプロパティが見つかりませんでした

ObjectDataSourceではまりました。

環境

Visual Studio 2008 SP1, .NET Framework 3.5

問題

オブジェクトをObjectDataSourceにバインドさせたら、以下の例外が発生しました。

ObjectDataSource 'ObjectDataSource1' の DataObjectTypeName プロパティによって指定された型上の 'hoge' というプロパティが見つかりませんでした。

そこでプロパティを作成しました。

public string hoge;

でも、同じ例外が発生します。

解決方法

以下のように書いたら解決しました。

public string hoge { get; set; };

教訓

publicなフィールドではプロパティとみなしてはくれない。面倒くさがらずにコードスニペットを使おう(プロパティは「prop」)。

Visual Studioでプロパティをデバッグする

問題

C#3.0から自動プロパティが実装されたので、プロパティを以下のように書けるようになりました。

public string Hoge;

でもこれではブレークポイントを設定してもブレークしてくれません。

解決方法

一時的にプロパティを書き直します。Visual Studio 2010ならコードスニペットのpropfullでOKです。これでブレークポイントが有効になります。

# もっとスマートな解決方法はないのかな?

// public string Hoge;

private string hoge;

public string Hoge {
    get { return hoge;}
    set { hoge = value;}
}

EdmGen.exeの実行で「ストア プロバイダが正しく機能していない可能性があります。」のエラーが発生する

EdmGen.exeの実行で以下のエラーが発生することがあります。

エラー 7001: 型 'Npgsql.NpgsqlFactory' のストア プロバイダ インスタンスの 'GetService' メソッドを呼び出した後に NULL が返されました。ストア プロバイダが正しく機能していない可能性があります。

私の環境(.Net Framework 3.5 SP1)では、Npgsql2.0.10-bin-ms.net.zipを使用していたことが原因でした。Npgsql2.0.10-bin-ms.net3.5sp1.zipに変更したところ正常にソースコードを生成してくれました。

なお、サイト構築の手順は以下にまとめてあります。
PostgreSQLでASP.NET Dynamic Dataサイトを構築する - プログラマーな日々
以前一度は失敗していますが、後日ASP.NET Dynamic Dataサイトの構築に成功したので、手順を残しておきます。 ...

はてなダイアリーのhttp記法でタイトルが表示されないときは

はてなダイアリーのhttp記法でタイトルが表示されないことがあります。
2011-07-15 - プログラマーな日々
こんな具合です。



そんなときは記事へのリンクをクリックしてから、URLをコピペし直してください。
ブログトップを最新記事に設定していると、起こりやすいです。

Windows Presentation Foundation ベースのアプリケーションを実行すると、さまざまな問題が発生する

知っておいた方がいいかもしれない。

Windows Presentation Foundation ベースのアプリケーションを実行すると、さまざまな問題が発生する

Windows XP または Windows Vista 上で Windows Presentation Framework (WPF) を使用したアプリケーションを実行すると、以下のような問題が出る場合があります。

STOP エラーが発生する
システムが応答を停止する
画面の描画が不正になる
WPF アプリケーション起動時に、ウィンドウの枠のみ表示される
WPF アプリケーションが起動できない
WPF アプリケーション起動時に、エラー メッセージが表示される

上記の現象は、古いバージョンのディスプレイ ドライバーを使用している場合に発生することがあります。

注: 上記の現象すべてが古いバージョンのディスプレイ ドライバーに起因しているわけではありません