ASP.NET MVC コードファースト テーブルとカラム名等が異なる場合のエンティティクラス定義

Posted in ASP.NET on 6月 29th, 2011 by Site Administrator

たとえば下記構造のテーブルがあったとして、
[id] int NOT NULL IDENTITY(1,1) ,
[height] int,
[taiju] int,
これに対応するエンティティクラスは

Public Class TestItem
    Public Property id As Integer
    Public Property height As Integer
    Public Property taiju As Integer
End Class

となります。

・「taiju」ではなく「weight」としたい
・テーブルには存在しないが、bmiというパブリックな変数を追加したい
という場合には次のように属性を設定します。

Imports System.ComponentModel.DataAnnotations
Public Class TestItem
    Public Property id As Integer
    Public Property height As Integer
    <Column("taiju")>
    Public Property weight As Integer
    <NotMapped()>
    Public Property bmi as Integer
End Class

DBとマッピングされる項目は「R/Wで定義されたプロパティ」のみのようです。なので

    Public bmi as Integer

とか

    Public ReadOnly Property bmi as Integer
        Get
            Return 10000 * weight / height / height
        End Get
    End Property

という定義でもマッピング回避は可能です。

DQ67SW(0053)とAdaptec

Posted in ハードウェア on 6月 28th, 2011 by Site Administrator

https://blog.orgal.jp/wp/?p=217

DQ67SWのBIOSアップデートがあり、0053となりました。
リリースノートを見ると、x16ポートの互換性周り手が入ったようだったので
Adaptec ASR-2405 で試してみたのですが、相変わらずの認識不具合でした。

ASP.NET GET/POSTパラメータの取得

Posted in ASP.NET on 6月 24th, 2011 by Site Administrator

〇GET
request.QueryString.Item(index):index番目のデータの値取得
request.QueryString.AllKeys:キーの一覧取得
request.QueryString.Get(Key) Keyで指定されるデータの値取得

〇POST
request.Form.Item(index):index番目のデータの値取得
request.Form.AllKeys:キーの一覧取得
request.Form.Get(Key):Keyで指定されるデータの値取得

ASP.NET MVC CakePHPとの対比

Posted in ASP.NET, CakePHP on 6月 23rd, 2011 by Site Administrator

ここ数年はCakePHPでの開発が多かったのですが、ここにきて.NETでの開発も再開です。
最近はASP.NET MVC & Razor & Entity Frameworkが面白そうなので、CakePHPとの
機能対比について随時まとめていきたいと思います。※言語はVBとしてます。

〇/config/database.php
→/Web.configのconfiguration→connectionStringsに記載

〇Modelを使用したO/Rマッパー
→Entity Framework 4.1のコードファーストを使えば近い概念になる。
/Modelsにエンティティクラスを定義、かつ、エンティティクラスにアクセスするためのDbContext継承クラスを定義

〇Helper
→App_Code以下に、拡張子vbhtmlでファイルを作成し、メソッドを定義する。

例)

'ヘルパー定義
'/App_Code/Views/Helpers/Sample.vbhtml
@helper sampleFunc(inputString As String)
    @("入力は " + inputString + " です")
End Helper

'呼び出し
'/Views/Home/Index.vbhtml
@Views.Helpers.Sample.sampleFunc("test")

ASP.NET MVC 読んでおいたほうが良い資料

Posted in ASP.NET on 6月 23rd, 2011 by Site Administrator

http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

英語の資料となりますが、これから取り組む方はこちらのtutorialを読んでおいたほうがよいかと思います。
ASP.NET MVC + Entity Frameworkという構成でのtutorialとなっていて、ページング、ソート、フィルタなどの
一覧画面で必要になる処理についても触れています。
こちらのページのリンクから、PDF化した資料もダウンロード可能です。

ASP.NET MVC URLパラメータ取得

Posted in ASP.NET on 6月 20th, 2011 by Site Administrator

Dim controllerName As String
Dim actionName As String
controllerName = RouteData.Values(“controller”).ToString()
actionName = RouteData.Values(“action”).ToString()

RoudeData.Valuesを参照することでアクション名、コントローラ名、各種パラメータが取得可能。

SQLServer 2008 R2 IDENTITY指定カラムへのINSERT

Posted in DB, SQLServer on 6月 15th, 2011 by Site Administrator

http://social.msdn.microsoft.com/Forums/ja-JP/aspnetja/thread/978e78e7-65c5-47b2-913f-efe7893554d4

ちょっとはまりました。
IDENTITYを指定したカラムのデータを指定した状態でデータをINSERTすると、
「列リストが使用されていて、IDENTITY_INSERT が ON のときに限り、~」
というエラーが発生してINSERTが失敗します。

これを回避する条件は2つ
・セッション内で、「SET IDENTITY_INSERT テーブル名 ON」を行うこと
・発行するINSERT文は、各カラムを明示的に定義すること
 ○:INSERT INTO [テーブル名] ([id],[user_id]) VALUES (N’1′, N’0′);
 ×:INSERT INTO [テーブル名] VALUES (N’1′, N’0′);

Navicatを使ってMySQL→SQLSererへデータの移行をしている際に少しはまりました。

CakePHP(1.3.8) SQLServerとの接続

Posted in CakePHP, DB, SQLServer on 6月 8th, 2011 by Site Administrator

http://www.greendesign.biz/sql-server-driver-for-php%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/
こちらを参考に接続設定を行いました

1.SQL Server Driver for PHPのダウンロード
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=80e44913-24b4-4113-8807-caae6cf2ca05

2.PHPへのドライバの設定
C:xamppphpextへ、適切なドライバをコピーし、php.iniに設定記載。
extension=php_sqlsrv_53_ts_vc6.dll
extension=php_pdo_sqlsrv_53_ts_vc6.dll

3.Apache再起動

4.CakePHPのDATABASE_CONFIGを設定
・‘driver’ は ‘sqlsrv’ を設定
・’charset’ => ‘UTF-8′ を追加(’encoding’ に設定してもダメ。また ‘utf8’ でもダメ)

5.dbo_sqlsrv.php を appmodelsdatasourcesdbo に配置
https://github.com/cakephp/datasources/tree/master/models/datasources/dbo/
ここからダウンロード

SQLServer 2008 R2 外部からのDB接続

Posted in DB, SQLServer on 6月 3rd, 2011 by Site Administrator

1.ファイアーウォールでポート1433(標準)が空いていることを確認
2.SQLServer構成マネージャ→SQLServerネットワークの構成→プロトコルで、TCP/IPが有効であることを確認
3.接続ユーザーアカウントが適切であることを確認