拝啓、サカモトと申します。

Another Gahaku.Text Powered Blog

目次

ニュース

元○○

記事カテゴリ

書庫

Blog 利用状況

絵画はこっち。

2008年8月8日 #

しゃのん先生のLINQ教室。

 

知識が追いつかないけど、良いことを教えてもらったのでこっちにメモ♪

 

ココ

 

まだ

SELECT

WHERE

FROM

くらいの簡単な構文から抜け出せないww

XXXXOrDefaultの使い方もなるほどーって思いました。

posted @ 18:42 | Feedback (0)

LINQ TO XMLに子供ちゃれんじ その2

先ほどの

    var message = from c in doc.Element("Root")
                  .Elements("message")
                  where c.Attribute("id").Value == id.ToString()
                  select c;

 

を拡張メソッドにしてあげると。

 

var hoge2 = doc.Elements()
                  .Where(e =>e.Element("message").Attribute("id").Value==id.ToString())
                 .Select(e => new
                                          {
                                          msg = e.Element("message").Element("msg").Value
                                         });

 

こんな感じ・・・・?

 

XML頑張らないとだめだ・・・。

 

 

LINQテクノロジ入門!(赤間本)には

「まぁ現時点では拡張メソッド方式で書く方が無難だねー!」

みたいに書かれてます。

でもMSDNとかでは

「極力埋め込み式クエリで・・・」

みたいに書かれてたり・・・。

posted @ 17:44 | Feedback (0)

LINQ TO XMLにちゃれんじ。

 

は・じ・め・て・のLINQ TO XML。

で何か簡単なプログラムで頑張ってみる。

 

<?xml version="1.0" encoding="utf-8" ?>
<Root>
<message id="1">
  <msg>完了しました</msg>
</message>
<message id="2">
  <msg>失敗しました</msg>
</message>
</Root>

 

こういうmsaage.xmlを準備。

 

で。

やんちゃなクラスですけど・・・。

 

public string GetMessage(int id)
{
    string msg = string.Empty;
    XDocument doc = XDocument.Load(dataPath + "message.xml");

    var message = from c in doc.Element("Root")
                  .Elements("message")
                  where c.Attribute("id").Value == id.ToString()
                  select c;

    foreach (XElement result in message)
    {
        msg = result.Value;
    }
    return msg;
}

 

で引数で指定されたidに対応するメッセージ(がんばれ画伯とか、すごいぞ画伯とか、素敵すぐる画伯とか)が出ます。

 

で。

 

これを拡張メソッドで書き直したいんですけどうまくいかない・・・。

posted @ 16:11 | Feedback (28)

LINQ TO SQL with SQL Server Compact

 

色々と覚書シリーズ。

 

デザイナで作成するのとコマンドラインから作成するdbmlファイルの違い。

 

【SQL Server2005(Express含む)】

 

コンストラクタに

public HogeExpressDataContext() :
        base(global::Core.Properties.Settings.Default.HogeConnectionString1, mappingSource)
{
    OnCreated();
}

 

というのが作成されます。

でも。

 

【Compact】

public Hoge(string connection) :
        base(connection, mappingSource)
{
    OnCreated();
}

 

引数を0個指定されるコンストラクタは作成されない。

 

デザイナで作成されるとプロジェクトのプロパティに接続文字列などを自動でセットしてくれるけど、sqlmetalさんで作成した場合はsdf単体から作成するわけだからもちろんプロジェクトのプロパティなど知ったことではない。ので作成してくれない。

 

作成されないと、いちいち引数を指定しないとダメで面倒なので、引数0個のコンストラクタを追加してあげるとOK。

public hoge() :
        base(global::Core.Properties.Settings.Default.LunchConnectionString1, mappingSource)
{
    OnCreated();
}

 

何にせよCompactでデザイナが使えるようになってくれると非常にうれしい・・・。

どこかに使えない理由が書いてあったですねー、探してこよっと。

posted @ 13:36 | Feedback (0)

DataContext♪

 

LINQ TO SQLをプロジェクトに追加。hoge.dbmlというクラスが作成されますです。

で。

 

SQL Server 2005(Express含む)で作成したテーブルをこのdbmlに追加してあげると、(テーブル名がgahakuだとすると)

gahakudataContext

という名前でpartialクラスが作成されますhoge.designer.csの中を見るとね。

 

で。

 

これをSQL Server Compactでやろうとすると、まず、デザイナーツールは使えないので、sqlmetal.exeさんをコマンドから呼び出して.dbmlファイルを作成するわけです。

そのあたりはここを読む

 

で。

上記のgahakuDataContextが、単に「gahaku」になってしまいます。

それに気づかなくて、インテリセンスさんに「gahakudataContext」がないっ!

ってあせりました。

理由はよくわかりませんが、まだLINQに慣れていないので教科書通り「XXXDataContext」って出てほしいなーと・・・。

posted @ 13:08 | Feedback (0)

managementstudio続き。

 

http://technet.microsoft.com/ja-jp/library/ms171757(SQL.100).aspx

 

でもこちらにはちゃんと「SQL Server 2005以降のManagementstudio1(つまり2008)」が必要。と書いてあったり。

 

ドキュメント整備が追いついてないのかどうなのか・・・。

posted @ 9:08 | Feedback (0)

Management Studio

 

SQL Server Compact 3.5で

http://msdn.microsoft.com/ja-jp/library/ms171805(SQL.100).aspx

と「Management Studioつかえ!」って書いてあります。

で。

http://www.microsoft.com/downloads/details.aspx?FamilyId=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796&DisplayLang=ja

ここからダウンロードして!

って書いてあります。

が。

ダウンロード先では

注 : SSMSE で Analysis Services、Integration Services、Notification Services、Reporting Services、SQL Server エージェント、SQL Server 2005 Mobile Edition は管理できません。」

って書いてあります。

この「Mobile Edition」が正しく「Compact3.5」のことを指しているのかがなぞ・・・。

posted @ 9:02 | Feedback (2)

SQL Server Compact 3.5 SP1

 

MSDNで。

http://msdn.microsoft.com/ja-jp/library/cc645984(SQL.100).aspx

 

こんな説明前からありましたっけ・・・?

posted @ 8:56 | Feedback (42)

ふと思いました・・・。

 

 

いつのまにか、Office2007のリボンに慣れきっている自分発見。

 

慣れって大切だなーと思いました。

posted @ 8:47 | Feedback (2)

週末にやること

 

【未】8/16勉強会用のプログラム作成

【未】MVCふれーむわーく(笑)の勉強

【未】草抜き

 

終わったら【済】にする。

終わらなかったら終わったことにする。

posted @ 7:47 | Feedback (4)