質問

Partは、webアプリケーションのように地表からのメッセージを管理へ1...nます。いDataAccessプロジェクトが含まれるLINQ to SQLクラス及びウェブサイトプロジェクトのポートします。私のデータベースは以下のようなものです:

ユーザー->MessageDetail <メッセージ <-MessageCategory

MessageDetailは結合テーブルそのものが含まれてIsReadフラグ。

リストのメッセージングです。私は入れ子ListViewのページ--ひとつの出力のグループ名が、もう一つの子鎖にMessageDetails出力するメッセージです。のコード行のページのメッセージ私は次のコード:

protected void MessageListDataSource_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
    var db = new DataContext();

    // parse the input strings from the web form
    int categoryIDFilter;
    DateTime dateFilter;
    string catFilterString = MessagesCategoryFilter.SelectedValue;
    string dateFilterString = MessagesDateFilter.SelectedValue;
    // TryParse will return default values if parsing is unsuccessful (i.e. if "all" is selected"):
    // DateTime.MinValue for dates, 0 for int
    DateTime.TryParse(dateFilterString, out dateFilter);
    Int32.TryParse(catFilterString, out categoryIDFilter);
    bool showRead = MessagesReadFilter.Checked;

    var messages =
        from detail in db.MessageDetails
        where detail.UserID == (int)Session["UserID"]
        where detail.Message.IsPublished
        where detail.Message.MessageCategoryID == categoryIDFilter || (categoryIDFilter == 0)
        where dateFilter == detail.Message.PublishDate.Value.Date || (dateFilter == DateTime.MinValue)
        // is unread, showRead filter is on, or message was marked read today
        where detail.IsRead == false || showRead || detail.ReadDate.Value.Date == DateTime.Today
        orderby detail.Message.PublishDate descending
        group detail by detail.Message.MessageCategory into categories
        orderby categories.Key.Name
        select new
        {
            MessageCategory = categories.Key,
            MessageDetails = categories.Select(d => d)
        };

    e.Result = messages;
}

このコード 作品, が、こだわりの巨大なザリ算書こういうコードの背後、LinqDataSource制御だけでな座私は別にいいんだけどね。

いまだ符号化クエリーのユーザインタフェースは、今ではLINQの代わりにSQL.しかし、私は、ビル別の層の間にL2Sのポリシー-ガイドラインのUIをカット後、一部の柔軟性のLINQ.なポイントの量を削減し、コードの書き取得したデータはもらえますか?

が可能な中地ん、見てるのは僕だけで誤解のLINQ to SQLっても大丈夫ですか?アドバイスするとぞよろしくお願い申し上げます。

役に立ちましたか?

解決

すべてのLINQ querysできる ビジネスロジッククラス, 変化から高齢の方法論のようにADO.

の場合 まずリストを返し(T)から、ビジネスクラスのdatacontextきに見える事業。それを操ることができ、リストのユーザーインターフェースです。

の場合 pragmatist, を返すことができIQueryableオブジェクト、いくつかの操作をユーザーインターフェースです。

他のヒント

問わず、LINQ、その混合発表コードデータベース-relaedコードではありません良い方法がありました。いを簡単なDB抽象化レイヤにLINQクエリ.私の考えではLINQがあり便利なツールとなり重大な影響を及ぼす伝統的な応募デザイン。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top