Friday, September 27, 2019

Linq ஒரு அறிமுகம்.



Linq என்பது என்ன?
Linq என்பது language integrated query ஆகும்.லிங்க் பயன்படுத்தி டாட் நெட்டில் வெவ்வேறு வகையான டேட்டா ஸ்டோரேஜில் இருந்து டேட்டாவைக் கேட்டு பெறலாம்.
உதாரணம் sqlserver,xml documents, object in memory ஆகியவை ஆகும்.
லிங்க் பயன்படுத்துவதால் ஏற்படும் நண்மைகள்>
1.     ஒவ்வொரு ஸ்டோஜ் டைப்பிற்கான கொரி எழுதவற்கு தெரிந்து கொள்ள வேண்டியதில்லை.
உதாரணம்
Sqlserver-ல் இருந்து டேட்டாவை ரிட்ரைவ் செய்ய Ado.net பற்றி தெரிந்து கொள்ள வேண்டியிருக்கும்.
Xml டாக்குமென்டஸில் இருந்து டேட்டாவை ரிட்ரைவ் செய்ய xslt,xpath பற்றி தெரிந்து கொள்ள வேண்டியிருக்கும்.
In memory ஆப்ஜெக்டில் இருந்து டேட்டாவை ரிட்ரைவ் செய்ய அர்ரே, ஜென்ரிக்ஸ் பற்றி அறிய வேண்டியிருக்கும்.
ஆனால் லிங்க் பயன்படுத்தினால் எல்லாவற்றிற்கான பொதுவான நிரல் வரிகளைத் தான் எல்லாவற்றிற்கும் பயன்படும்.
2.     இன்டெலிசென்ஸ் சப்போர்ட் உண்டு.
3.     கம்பைல் டைமிலேயே பிழை சுட்டப்படும்.

 


LINQ Architecture & LINQ Providers

லிங்க் கொரியை டாட்நெட் ஆதரிக்கும் எந்த மொழியிலும் எழுதலாம்.
லிங்க் கொரிக்கும் டேட்டா சோர்ஸிற்க்கும் இடையே லிங்க் ப்ரவைடர் உள்ளது. அதுவே நாம் எழுதும் லிங்க் கொரியை அந்தந்த டேட்டா சோர்ஸ் புரிந்து கொள்ளும் படி மாற்றியமைக்கின்றது.
கீழே உள்ள டேபிளை எடுத்துக் கொள்வோம்.
ஒரு கிரிட்வியூ ஆனது அந்த டேபிளில் உள்ள male ஸ்டூடன்ட் ரிக்கார்ட்களை மட்டும் டிஸ்பிளை செய்கின்றது.
Sql சர்வரில் செய்ய வேண்டியவை:
முதலில் பின்வருமாரு ஒரு டேபிளை உருவாக்க வேண்டும்.


Create Table Students
(
     ID int primary key identity,
     FirstName nvarchar(50),
     LastName nvarchar(50),
     Gender nvarchar(50)
)
GO

பின்பு ரிகார்ட்களை இன்செர்ட் செய்ய வேண்டும்.

Insert into Students values ('Mark', 'Hastings', 'Male')
Insert into Students values ('Steve', 'Pound', 'Male')
Insert into Students values ('Ben', 'Hoskins', 'Male')
Insert into Students values ('Philip', 'Hastings', 'Male')
Insert into Students values ('Mary', 'Lambeth', 'Female')
GO
Asp.net-l web.confiq என்பதில் DBCS  என்ற பெயரில் கனக்சன் ஸ்டிரிங்க் ஒன்று உருவாக்கிக் கொள்ளவும்.
பிறகு கீழ் வருமாறு நிரல் எழுத வேண்டியிக்கும் இந்த நிரல் வரிகளை புரிந்து கொள்ள உங்களுக்கு ado.net பற்றிய அறிவு தேவைப்படும்.


using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
namespace Demo
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
            SqlConnection con = new SqlConnection(cs);
            SqlCommand cmd = new SqlCommand
                ("Select ID, FirstName, LastName, Gender from Students where Gender='Male'", con);
            List<Student> listStudents = new List<Student>();
            con.Open();
            SqlDataReader rdr = cmd.ExecuteReader();
            while (rdr.Read())
            {
                Student student = new Student();
                student.ID = Convert.ToInt32(rdr["ID"]);
                student.FirstName = rdr["FirstName"].ToString();
                student.LastName = rdr["LastName"].ToString();
                student.Gender = rdr["Gender"].ToString();

                listStudents.Add(student);
            }
            con.Close();

            GridView1.DataSource = listStudents;
            GridView1.DataBind();
        }
    }

    public class Student
    {
        public int ID { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Gender { get; set; }
    }
}
இதில் உள்ள இரண்டு குறைகள்
1.     இன்டெலிசென்ஸ் உதவி கிடையாது.
2.     கொரியில் பிழை இருந்தாலும் கம்பைல் டைமில் சுட்டிக் காட்ட பட மாட்டாது.இயக்க நேரத்திலேயே பிழை சுட்ட்ப்படும்.

முதலில் ஒரு asp.net empty பயன்பாடு உருவாக்கவும்.
அதற்கு demo என பெயரிடவும்.
View மெனுவில் server explorer என்பதை கிளிக் செய்யவும்.
Server explorer வின்டோவில் data connections என்பதை வலது கிளிக் செய்து Add connection என்பதை தேர்ந்தெடுக்கவும்.




பின் வரும் விண்டோவில் சர்வர் பெயர், லாக் இன் கிரடென்சியல் மற்றும் டேட்டா பேஸ் பெயர் ஆகியவற்றை குறிப்பிடவும்.
சொல்யூசன் எக்ஸ்புளோரரில் demo என்ற பிராஜெக்ட் பெயரை வலது கிளிக் செய்து Add new item என்பதை செலெக்ட் செய்யவும்.
பின் வரும் விண்டோவில் installed templates என்பதன் அடியில் உள்ள data என்பதை கிளிக் செய்யவும்.
Linq to sql classes என்பதை தேர்வு செய்து அதன் பெயராக sample.dbml என்பதை கொடுக்கவும்.
கடைசியாக Add பட்டனை கிளிக் செய்யவும்.

   

Server explorer ன்பதில் இருந்து students டேபிளை டிராக் செய்து sample.dbml என்ற டிசைனர் ஃபைலில் டிராப் செய்யவும்.

வெப் ஃபார்ம் ஒன்றை புதிதாக உருவாக்கி அதில் ஒரு கிரிட் வியூ கண்ட் ரோலை சேர்த்துல்க் கொள்ளவும்.
இப்பொழுது code behind ஃபைலில் பின் வரும் வரிகளை சேர்த்துக் கொள்ளவும்.

using System;
using System.Linq;
namespace Demo
{
    public partial class WebForm1 : System.Web.UI.Page
    {
ம்
        {
            SampleDataContext dataContext = new SampleDataContext();
            GridView1.DataSource = from student in dataContext .Students
                                   where student.Gender == "Male"
                                   select student;
            GridView1.DataBind();
        }
    }
}

 இப்பொழுது உங்களுக்கு இன்டெலிசென்ஸ் சப்போர்ட் கிடைக்கின்றது மேலும் பிழை இருந்தால் கம்பைல் டைமிலேயே சுட்டப்படுகின்றது.
நன்றி
முத்து கார்த்திகேயன்,மதுரை.
ads Udanz

No comments:

Post a Comment