this site the web

1511..LINQ ဆိုတာ ( 27.5.11 )

 

            အတိအက်ေျပာရရင္ .Net 3.0 မွာစတင္မိတ္ဆက္ခဲ႔ျပီး .Net 3.5 မွာ စတင္ပါ၀င္လာတဲ႔ နည္းပညာသစ္တစ္ခု ျဖစ္ပါတယ္ ။
Langauge Integrated Query ကုိ အတုိေကာက္ေခၚတာ ျဖစ္ပါတယ္ ။

           .Net ရဲ႔ Langauge ေတြမွာ Query ေတြ ထည္႔သြင္းေရးသားနုိင္ဖုိ႔ Language-based Querying ကုိ အေျခခံထားေသာ
နည္းပညာသစ္တစ္ခု ျဖစ္ပါတယ္ ။

         
1. Properties ေၾကျငာပံု ကြဲျပားလာျခင္း
2. Object နွင္႔ Collection Initializer မ်ား ပါ၀င္လာျခင္း
3. Types Inferences မ်ား ပါ၀င္လာျခင္း
4. Extension Methods မ်ား
5. Lambda Expression
စသည္ျဖင္႔ ပါ၀င္လာပါတယ္ ။

1. Properties ေၾကျငာပ ုံ
.Net 3.5 တြင္ Property ေၾကျငာရသည္က .Net 2.0 ထက္ လြယ္ကူလာသည္ ။

.Net 2.0 တြင္ Property ေၾကျငာပံု
private string _firstName;
public string firstName
{
get { return _firstName; }
set { _firstName = value; }
}
.Net 3.5 တြင္ Property ေၾကျငာပံု
public string firstName
{
get ; set ;
}

2. Object နွင့္Collection Initalizer မ်ား
Object Initializer

.Net 3.5 မွာ Objects တစ္ခုကို Create လုပ္ျပီးတာနဲ႔ Properties ထဲကုိ တုိက္ရုိက္ တန္း Assign လုပ္ပံုမ်ိဳးေတြ ပါ၀င္လာတယ္ ။

.Net 2.0

Cust20 cust20 = new Cust20();
cust20.firstName = "Groucho";
cust20.lastName = "Marx";
cust20.birthDate = new DateTime(1890, 10, 2);

.Net 3.5

Cust35 cust35 = new Cust35 { firstName = "Jim",
lastName = "Gaffigan", birthDate = new DateTime(1966, 7, 7) };

Collection Initializer အေၾကာင္္း

.Net 2.0

List<Cust20> pcTitans20 = new List<Cust20>();
Cust20 steveJobs = new Cust20();
steveJobs.firstName = "Steve";
steveJobs.lastName = "Jobs";
steveJobs.birthDate = new DateTime(1955, 2, 24);
pcTitans20.Add(steveJobs);



.Net 3.5

List<Cust20> pcTitans35 = new List<Cust35>
{
//Collection Initializer အသံုးျပဳသြားပံု
new Cust35{firstName="Steve",lastName="Jobs",
birthDate=new DateTime(1955,2,24)},
}


3. Types Inferences မ်ား

ၾကိဳတင္သတ္မွတ္ထားေသာ Type Inferences မ်ား
var serialNumber1 = 123456; // Integer Inference type
var serialNumber2 = "789"; // String Inference type
Anonymous Type Inference (new Keyword အသံုးျပဳျပီးမွ သတ္မွတ္လုိက္ေသာ Anonymous Type Inference )
var myHouse = new { color = "green" , address = "100 Elm" }


4. Extension Methods မ်ား
ရွိျပီးသား အမ်ိဳးအစားေတြထဲကုိ Custom Method မ်ား ထည္႔ေပါင္းေရးသားတဲ႔ ပံုစံပါ ။ ေအာက္က Program ေလးကုိပဲ အရင္ ေလ႔လာ
ၾကည္႔ပါ ။
public static class ScottGuExtensions
{
public static bool IsValidEmailAddress (this string s)
{
Regex regex = new
Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"); // လိုခ်င္တဲ႔ ပံုစံ ထည္႔ေပါင္း ျပီး ေရးသြားတဲ႔ ပံုစံပါ ။
return regex.IsMatch(s);
}
}



5. Lambda Expression
Method Body ကေန Parameters ေတြကုိ ခြဲထုတ္ေပးပါတယ္ ။
ဒီ Symbol ( => ) ေလးကိုေတ႔ြရင္ Lambda သုံးထားေၾကာင္း မွတ္ယူရပါမယ္ ။
သာမန္ Query နဲ႔ Lambda Query ကုိ ကြာျခားပံုကုိ နွိုင္းယွဥ္ျပပါမယ္ ။

သာမန ္ Query
var results = from c in Comedians
where c.Contains("Marx")
select c;

Lambda Query
var results = Comedians.Where ( c => c.Contains("Marx"));
Lambda Expression ကုိလည္း ေနာက္ Post တစ္ခုမွာ အေသးစိပ္ ထပ္ရွင္းပါအံုးမယ္ ။
LINQ Providers ေတြကြကြက ဘာေတြလြလြလ ဲ
ကြ်န္ေတာ္ LINQ Architecture တြင္ LINQ Providers ကုိ သံုးပုိင္း ခြဲခ်င္ပါသည္ ။
1. LINQ to Objects
2. LINQ to ADO.Net
3. LINQ to XML စသည္ျဖင္႔ ခြဲပါမည္ ။


http://www.freeimagehosting.net/uploads/a24b6dc624.jpg



              Orange Color Box သည္ ADO.Net နွင္႔ Database အပုိင္းကုိ ခ်ိတ္ဆက္ထားပံုကုိ ရွင္းလင္းေစရန္ျဖစ္ပါသည္ ။ LINQ-to-SQL (
အနီေရာင္သည္ ) MS SQL Server အတြက္သာ သီးသန္႔ ရည္ရြယ္ထားျခင္းျဖစ္ျပီး အျခားေသာ Database Server အမ်ိဳးအစားမ်ား (
MySQL , Oracle ) အတြက္မူ LINQ to Entities ကုိ အသံုးျပဳရမည္ျဖစ္သည္ ။

Labels:

Print ပဲထုပ်ပါ..pdf ထုပ်လျှင်.ဖောင့်လွဲနေလိမ့်မယ်



မာတိကာ ၁ မာတိကာ ၂ မာတိကာ ၃ မာတိကာ ၄ မာတိကာ ၅

KKZ Myanmar Unicode Keyboard

Mone Tine On Android

►Version 1.1

►Version 1.0

MoneTineKeyboard

Like လုပ်ထားနိုင်ပါတယ်

Mone Tine Knowledge Bank

Labels

အောက်ကကြေငြာလေးကလစ်ပေးပါဦး

Usage Policies

သင်၏ Facebook  တွင် ဖတ်နိုင်ရန် LIKE လုပ်ခဲ့ပါ..
( အမှန်ခြစ် ပေါ်နေပြီး LIKE ပြီးသားပါက CLOSE ကိုသာနှိပ် ပိတ်ပါ )

ကျေးဇူးတင်ပါတယ် မုန်တိုင်း

ကျန်းမာကြပါစေ