LINQ to SQLはO/Rデザイナーを使用しないで表の対象を建てます。

6055 ワード

         
           Customer  ,    :
using System.Data.Linq.Mapping;  //      

namespace LINQtoSQL
{
    [Table(Name = "Customers")]  //  Table      ,Name             
    public class Customer
    {
        [Column(IsPrimaryKey = true, Name = "CustomerID")]//        ,     
        public string MyCustomerID { get; set; }
        [Column]
        public string CompanyName { get; set; }
        //[Column]
        //public string ContactName { get; set; }
        //[Column]
        //public string ContactTitle { get; set; }
        //[Column]
        //public string Address { get; set; }
        //[Column]
        //public string City { get; set; }
        //[Column]
        //public string Region { get; set; }
        //[Column]
        //public string PostalCode { get; set; }
        [Column]
        public string Country { get; set; }
        //[Column]
        //public string Phone { get; set; }
        //[Column]
        //public string Fax { get; set; }
    }
}
       LINQ    
public void CustomObject()
        {
            // using ExecuteQuery
            //    DataContext  ,       DataContext
            DataContext dc = new DataContext(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ToString());

            dc.Log = Console.Out; //    SQL      

            Table<Customer> myCustomers = dc.GetTable<Customer>();

            foreach (Customer item in myCustomers)
            {
                Response.Write(item.CompanyName + " | " + item.Country + "<br />");
            }
        }
LINQ to SQLは、DataContectオブジェクトを使用してSQL Serverデータベース上でクエリーを実行し、戻る行を強いタイプのCusstomerオブジェクトに変換することで、テーブルオブジェクトのセットの各Customerオブジェクトを反復させ、必要な情報を得ることができる。
クエリーでクエリーの列を制限します。
定義されたオブジェクトが限られた属性しか含まれていない場合は、クエリーの結果も属性に応じて対応する数の結果列を返します。
列の名前を使う
列名は属性名と一致しないとエラーとなります。この問題を解決するために、Name指定に加入しなければなりません。
[Column(IsPrimarryKey=true,Name="CustomerID")//データベースの列をマッピングして、メインキーpublic string MyCustomerID{get;set;)を識別します。
自分のData Contectオブジェクトを作成します。
自分のData Contectオブジェクトを作成します。Northwind.designer.csのサブセットです。このような管理をデータベースに接続させることができます。一番簡単な形式コードは下記の通りです。
using System.Data.Linq;
using System.Configuration;

namespace LINQtoSQL
{
    public class MyNorthwindDataContext : DataContext
    {
        public Table<Customer> Customers;

        public MyNorthwindDataContext()
            : base(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ToString())
        {
            //         
        }
    }
}
 
カスタムData Contectを使う
 
public void MyselfDataContext()
        {
            // using ExecuteQuery
            //    DataContext  ,       DataContext
            MyNorthwindDataContext dc = new MyNorthwindDataContext();

            Table<Customer> myCustomers = dc.Customers;

            foreach (Customer item in myCustomers)
            {
                Response.Write(item.CompanyName + " | " + item.Country + "<br />");
            }

        }