开源数据访问组件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>所担当的角色是比较重要的,它会自动分析类型和设置的值来进行相应的数据查询并返回值,从而使数据库操作变得更简和方便.不过前提是适应这种操作.
访问Beetlex的Github

浙公网安备 33010602011771号