开源数据访问组件Smark.Data 1.8

Smark.Data一直强调以最简单和高效的方式访问数据库,在这个版本中组件引入了Query<T>对象,它是一个查询值描述对象,通过它可以更方便地进行数据查询并获取结果.组件会分析T的具体类型自动选择查询方式进行操作;在应用的时候可以直接通过Query<Employee> item=3;的方式直接得到查询数据.因此对使用者来说是一种全新方便灵活的数据库操作途径.   

 T类型和设置值分析

组件会把T类型分为三种类型,第一种是返回值类型或string,第二种是实体类型,第三种是实体列表IList<T>.组件会根据这几种类型会初始化不同加载器.T类型会根据设置的值选择执行的路径,因此不同类型设置不同值也需要注意,如果没有匹配那会导致运行错误并提示相关错误信息.

  • T是值类型或String

支持转换SQL或存储过程

  • T是实体类型

支持转换值类型,SQL,条件表达式或存储过程

  • T是列表类型

 支持转换SQL,条件表达式或存储过程

测试应用用例

[TestMethod]
        public void Result_GetValue()
        {
            Query<Employee> query = 3;
            Console.WriteLine(query.Value.FirstName);
        }
        [TestMethod]
        public void Result_GetValue1()
        {
            Query<Employee> query = Employee.employeeID == 3;
            Console.WriteLine(query.Value.FirstName);
        }
        [TestMethod]
        public void Result_GetValue2()
        {
            Query<Employee> query = "employeeid=3";
            Console.WriteLine(query.Value.FirstName);
        }
        [TestMethod]
        public void Result_GetValue3()
        {
            Query<string> query = "select firstName from employees where employeeid=3";
            Console.WriteLine(query.Value);
        }
        [TestMethod]
        public void Result_GetValues1()
        {
            Query<List<Employee>> query = "";
            foreach (Employee item in query.Value)
            {
                Console.WriteLine(item.FirstName);
            }
        }
        [TestMethod]
        public void Result_GetValues2()
        {
            //存储过程
            CustOrderHist coh = new CustOrderHist();
            coh.CustomerID = "ALFKI";
            Query<IList<OrderHist>> query = coh;
            foreach (OrderHist item in query.Value)
            {
                Console.WriteLine(item.ProductName);
            }
        }

在1.8中Query<T>所担当的角色是比较重要的,它会自动分析类型和设置的值来进行相应的数据查询并返回值,从而使数据库操作变得更简和方便.不过前提是适应这种操作.

项目地址:http://smark.codeplex.com

相关资料:http://www.ikende.com/SmarkData.aspx

posted @ 2013-03-11 12:25  beetlex  阅读(1804)  评论(4编辑  收藏  举报