家庭 » 小點網

LINQ講解與小點網框架3.0和3.5

與技術和數據庫的推進它在編程part.成為了檢索數據的一個巨大挑戰快速地和以較少負擔。

它變得明顯下個大挑戰在編程的技術是減少沒有使用OO技術當地被定義訪問的和集成的信息的複雜。 non-OO信息的二個共源極是關係數據庫和XML。

主要好處 微軟?s LINQ項目 是他們接受的一般方法,因為他們集成了查詢語言不問任何具體部分。語言集成詢問可以使用以是能退回IENUMERABLE的XML,數據庫或者任何。

這能解釋的一個小講解。 這特別地是為愛做到porgamming的我的讀者。

這是我在doc發現可能表達LINQ的力量和真正地做程序員小點網微笑的小片。

使用系統; 使用System.Query;
使用System.Collections.Generic;
類app {
靜止空扼要() {
串起[]命名= {?室息? ?康納? ?直率? ?Everett ? ?阿爾伯特? ?喬治? ?哈里斯? ?大衛? };

IEnumerable expr =從s在名字
那裡(s.Length == 5 orderby s)
選擇s.ToUpper ();
foreach (串項目在expr)
Console.WriteLine (項目);

}

}

Linq怎麼與XML一起使用?

詢問建築學的延伸性用於LINQ項目提供運作在XML和SQL數據的實施。

沉重使用的Xpath和Xquery在主人編程語言。 這再一個代碼片斷為顯示多麼容易它是工作與是的LINQX (是什麼XML要求它?s)

標準方式完成如下:

XmlDocument doc =新的XmlDocument ();
XmlElement名字= doc.CreateElement (」名字」);
name.InnerText = 「帕特里克Hines」;
XmlElement phone1 = doc.CreateElement (」電話」);
phone1.SetAttribute (」類型」, 「家庭」);
XmlElement phone2 = doc.CreateElement (」電話」);
phone2.SetAttribute (」類型」, 「工作」);
XmlElement street1 = doc.CreateElement (」 street1 ″);
XmlElement市= doc.CreateElement (」城市」);
city.InnerText = 「Mercer海島」;
XmlElement狀態= doc.CreateElement (」狀態」);
state.InnerText = 「WA」;
XmlElement郵政= doc.CreateElement (」郵政」);
postal.InnerText = 「68042 ″;
XmlElement地址= doc.CreateElement (」地址」);
address.AppendChild (street1);
address.AppendChild (城市);
address.AppendChild (狀態);
address.AppendChild (郵政);
XmlElement聯絡= doc.CreateElement (」聯絡」);
contact.AppendChild (名字);
contact.AppendChild (phone1);
contact.AppendChild (phone2);
contact.AppendChild (地址);
XmlElement接觸= doc.CreateElement (」聯絡」);
contacts.AppendChild (聯絡);
doc.AppendChild (聯絡);

If we see it little closer the above code , This style of coding provides few clues to the structure of the XML tree. but with LINQX it becomes more of what they as functional construct.Here is what how u code the same with LINQX?.

XElement contacts = new XElement
(”contacts”,new XElement(”contact”,
new XElement(”name”, “Patrick Hines”),
new XElement(”phone”, “206-555-0144″,
new XAttribute(”type”, “home”))
,new XElement(”phone”, “425-555-0145″,new XAttribute(”type”, “work”)),
new XElement(”address”,new XElement(”street1″, “123 Main t”),
new XElement(”city”, “Mercer Island”),
new XElement(”state”, “WA”),new XElement(”postal”,”6843″)

This is so simple no hassles at all.

How LINQ works with database

Yup its done By Microsoft again under LINQD(thats LINQ for database). The query operators over relational data (DLinq) build on the integration of SQL-based schema definitions into the CLR type system.

This integration provides strong typing over relational data while retaining the expressive power of the relational model and the performance of query evaluation directly in the underlying store.

What we kneed to know is the structure of database table we want to deal with it and create a class exactly having private variables as columns of the underlying table say may be like save that easy.Thus in simple way we create an object of the row of that table in memory and do operation on that and ask somebody to save it.Moreover we can ask for a collection of those rows fo get more than one record and do a query on it..isnt that great no hassles of database sql.

1. Create an entity class with mapping to database table like this:-

[Table(Name="Customers")]
public class Customer
{
[Column (Id=true)]
public string CustomerID;
private string _City;
[Column(Storage = "_City")]
public string City
{
get { return this._City; }
set { this._City = value; }}}

2.Create a Data context to load from database

static void Main(string[] args){
// Use a standard connection string
DataContext db = new DataContext(
@?C:Program FilesLINQ PreviewDatanorthwnd.mdf?);
// Get a typed table to run queries
Table Customers = db.GetTable();

3.Query what you get?.

// Attach the log showing generated SQL to console
// This is only for debugging / understanding the working of DLinq
db.Log = Console.Out;
// Query for customers in London
var custs =
from c in Customers
where c.City == “London”
select c;
}

Thats how it works with database?.easy isn’t it?This Technology will come with DotNet Framework 3.0 and with C#3.0 and VB 9. I havent covered every thing but just a quick glance which can get grasping things faster. If you want to read more on it see the Microsoft?s LINQ Project

Related : Linq provider for Twitter API

Tags: , ,

Translate to EnglishÜbersetzen Sie zum Deutsch/GermanΜεταφράστε στα ελληνικά/GreekПереведите к русскому/RussianOversetter til Norsk/NorwegianÖversätta till Svensk/Swedish鄐嫩凶鄐兒鄐舟 鄐鄐兒鄐菽冗鄐 鄐鄐啤尹鄍 鄐鄍 鄐耜凶鄐/Hindi
Tradueix al català/CatalanTulkot uz latviešu/LatvianPreložiť do slovenčiny/SlovakVertaal aan het Nederlands/Dutchترجمة الى العربية/ArabicTraduzca al Español/SpanishTraduisez au Français/French
Traduca ad Italiano/ItalianTraduza ao Português/Portuguese日本語に翻訳しなさい /Japanese한국어에게 번역하십시오/Korean中文翻译/Chinese Simplified中文翻译/Chinese TraditionalПереклад на українську/Ukrainian
We Recommend : Click here to run a Free Performance scan
SMS subscribe Print This Post

Posted on 21st May 2007 by Ashish Mohta , A tech blogger who writes about solving day to day problems of people who use computer. He also writes on How to use the applications like Office, PC tips, Online tools,Browsers and more. All posts by Ashish Mohta | Connect with me @ Twitter | Linkedin | Facebook | Stumble | Need more help? Ask your Questions at our Support Center



6 Comments »

  • Oliver said:

    I don’t understand….you write on how to use tools in office, when one of the most basic (spellchecker) obviously went unused in this report. Thumbs way down to you Hashish. Way down.

  • Ashish Mohta (author) said:

    Hi Oliver, Why dont you enlighten all of us reading this with your devine knowledge on this subject ?

    Regards
    ASHISH ( without start H in Hashish )

  • Stjepan said:

    heavily — heavily
    explaing — explain
    lil ??? — little
    fo — to
    hassels — hassels
    isint — isn’t
    Frameowrk - Framework

    Here is a free tip for you — Tools > Spelling and Grammar…

  • Ashish Mohta (author) said:

    @Stjepan and Oliver : Thanks for pointing it out. I guess I still get scolded for my older posts but thanks. I had made the corrections

  • Tiiso :D said:

    Hello, Ashish, thanks for the post. As for Stjepan lol he still spelt Hassles wrong. So sad. Enjoy. Keep up the good work :D

  • Ashish Mohta (author) said:

    Thanks Tisso!!

Leave your response!

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>