Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use Linq with Castle ActiveRecord

I am playing around with Castle ActiveRecord and noticed that the download included the file, Castle.ActiveRecord.Linq.dll. I haven't found any documentation for using Linq with ActiveRecord, only some old blog posts.

What is the usage pattern? Is Castle.ActiveRecord.Linq ready for production use?

like image 239
Ronnie Overby Avatar asked Jun 03 '10 16:06

Ronnie Overby


1 Answers

Yes, Castle.ActiveRecord.Linq is production ready. It's included in the latest ActiveRecord release. The actual Linq provider is implemented in NHibernate.Linq.dll, the ActiveRecord Linq dll is a thin pass-through layer. There are basically two ways to use it:

  1. Make your entities inherit from ActiveRecordLinqBase<T>, then to query:

    var blogs = (from b in Blog.Queryable select b).ToList();
    
  2. Use ActiveRecordLinq.AsQueryable<T>, e.g.:

    var blogs = (from b in ActiveRecordLinq.AsQueryable<Blog>() select b).ToList();
    

Look at the tests for some sample code.

UPDATE: as of ActiveRecord 3.0 beta, Linq is integrated into Castle.ActiveRecord.dll, and NHibernate.Linq.dll is no more (integrated into NHibernate.dll as of NHibernate 3)

like image 140
Mauricio Scheffer Avatar answered Sep 20 '22 16:09

Mauricio Scheffer