Project Description
Yet another .NET-oriented ready to use object-relational mapping library. The key features are Web-related (caching, integration with standard ASP.NET providers).
The project is strated in early 2004. Now it's a proved framework for large and complex data-driven projects and web


Worm is a .NET-oriented new truly object-relational mapping library which hides from the developer all SQL and pseudo-SQL statements. It supports CRUD, caching, undo, and other features. Differencies from NHibernate. See also Quick starts and class reference.


See also Basic features and Advanced features

Quick start

Consider the following table "Store"

taked from standard AdventureWorks database. How can we map the table with a minimum cost to access the data from code?

Well first of all you should add reference to Worm.Orm.dll and CoreFramework.dll assemblies. The next thing - create Store class.
public class Store
        public int CustomerID { get; set; }
        public string Name { get; set; }
As you can see it just has two properties CustomerID and Name.

Third thing you should do is to add connection string to you database. For instance

Server=.\sqlexpress;Initial Catalog=AdventureWorks;Integrated security=true;

And the final step - writing a program.
static void Main(string[] args)
    var query = new QueryCmd(exam1sharp.Properties.Settings.Default.connString);

    foreach (Store s in query
                .From(new SourceFragment("Sales", "Store"))
        Console.WriteLine("Store id: {0}, name: {1}", s.CustomerID, s.Name);
There is no attributes, XML files and other staff. Worm supports inline entity mapping.

Advanced features

General thoughts

Last edited Jun 26, 2009 at 7:40 AM by AlexShirshov, version 30