Delphi can even LINQ to SQL!
Posted by Olaf Monien in .NET, Delphi, Development, tags: .net, CodeGear, Delphi, Delphi Prism, LINQ, LINQ to SQL, SQLAs there is obviously still some uncertainty if Delphi Prism is really a fully fledged .NET development environment, I’m posting an example below to prove that Prism does allow you to LINQ to SQL:
This is a “Customer” class definition with a manual mapping to a “Customers” table on a SQL Server 2005:
type [Table(Name := 'Customers')] Customer = class(Object) private protected public [Column(IsPrimaryKey := true)] property CustNo:Double; [Column] property Name: String; [Column] property Country: String; end;
This is the actual LINQ to SQL code that relies on the class definition above:
method MainForm.button2_Click(sender: System.Object; e: System.EventArgs); var LCustomers: Table<Customer>; LDBMain: DataContext; LConnectionString:String; begin LConnectionString := 'Data Source=.\SQLEXPRESS;Initial Catalog=DBDEMOS;Integrated Security=True'; LDBMain := new DataContext(LConnectionString); LCustomers := LDBMain.GetTable<Customer>(); var USCustomers := from Customer in LCustomers where Customer.Country = 'US' select Customer; for each Customer in USCustomers do begin listBox1.Items.Add(Customer.Name); end; end;
Interesting to note is that Prism has a very nice name scope mechanism. Even though “Customer” is a Class name, it is also used as local variable in the LINQ and FOR constructs. I am not saying that this is a good practice though
Technically, both “Customer” variables are different variables – which is quite important to understand.
The full demo source can be downloaded here: [download#2].





Entries (RSS)