Smark.Data

开源数据访问组件
授权协议 Apache
开发语言 C# .NET
所属分类 程序开发、 ORM/持久层框架
软件类型 开源软件
地区 国产
投 递 者 丁钟展
操作系统 Windows
开源组织
适用人群 未知
 软件概览

Smark.Data是基于Ado.net实现的数据访问组件,提供基于强类型的查询表达式进行灵活的数据查询,统计,修改和删除等操作;采用基于条件驱动的操作模式,使数据操作更简单轻松;内部通过标准SQL92实现对不同数据的支持,包括MSSQL,ORACLE,SQLITE,ACCESS等。
主要功能

  • 提供强类型的查询表达式,并提供基于条件表达式的数据据查询,汇总,修改,删除和编辑。
  • 提供多数库支持,运行期提供实体可对应多个数据库操作。
  • 提供基于线程的事务机制,可在不传递事务对象的情况下可以支持跨方法事务。
  • 支持表,视图和查询汇总实体描述。
  • 可在运行期动态调整实体对应的表名。
  • 支持自定义业务对象填充。
  • 支持存储过程调用描述和存储过程数据对象填充。
  • 支持自定义实体成员数据转换器,并自动应用到相应查询条件中。
  • 支持自定义实体成员数据验证,并可能通过数据查询的方式来验证成员数据有效性.
  • 支持自定义值描述,可以根据实际情况定义不同的成员默认值,包括从mssql获取自增值,oracle序列或系统的guid值等。
1.8使用简介
[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);
    }
}


  •          在实际应用中很多时候当属性没有值的情况下,在插入数据库时都希望设置一个默认值。Smark.Data提供属性默认值描述功能,开发人员可以拿Smark.Data内置的对象来描述属性默认值或者根据自己的需要实现默认值描述对象。 定义基础描述类     [AttributeUsage(AttributeTargets.Property)]     public abstract clas

  •        这一章主要介绍一下如何使用Smark.Data组件进行数据库操作;让使用者了简单了解一下Smark.Data的配置、实体类配置和简单的操作。在使用组件时程序必须引用Smark.Core和Smark.Data两个组件;其源代码可以到:http://smark.codeplex.com/下载。为了方便范例所使用的数据是Northwind.mdb. l        配置文件设置:   <

  •         使用Smark.Data进行数据查询时必须通过对象来描述,其主要描述信息包括查询来源于那些表和需要那些信息等,即使平常的最常面对的关联查询,数据汇总查询等都可以通过实体描述来完成.因此实体描述在组件中起到一个非常重要的作用,可以说所有数据处理都必须经过实体描述.以下是简单地介绍Smark.Data的实体描述能完成那些数据查询工作. [Table] interface ICu

  • 借助于扩展方法的功能,这一版本的改进可以让数据库操作变得更简单方便,在数据库操作相关会给你一种全新的体验.主要改进有以下几点: 条件表达式可以直接和string进行组合,从而更灵活地创建复杂的查询条件 扩展Load_方法,可以直接在值对象的基础上获取相关ID数据对象 扩展一系的查询方法,可直接在string的sql上进行数据操作,包括查询获取查询对象数据.在操作过程完全不需要借助于其他对象来处理.

 相关资料
  • 项目描述: 数据访问组件,提供了一组类库和一个代码生成工具,使.net项目中数据访问更简化. 功能: 多种数据库支持. 提供DataSet, DataTable 和数据实体查询. 执行SQL脚本及存储过程. 条件表达式. 常用SQL方法, 如MAX, MIN等可能被应用在查询中. 数据实体代码及XML文件生成. 使用: 基本功能:1. 使用 "EntitiesGenerator" 生成工具生成实体

  • 我正在从事一个门户项目,在那里我被迫使用WebSpherePortal、SpringPortlet MVC和Hibernate。我在配置Spring和Hibernate方面没有太多经验,因此非常感谢您提供的各种帮助 我在WebSphere 7.0.0.25(安装了Portal 6.1)上创建了一个JDBC数据源,JNDI名称为JDBC/eshop。然后我指定JAAS身份验证别名,并将其设置为容器管

  • 如何从父组件中访问子组件数据?我有一个父组件“MissionPlanner ”,我想访问名为“ChosenHeroes”的子组件“chosenHeroes”数组。如果数组中有元素,我想最终呈现一个div并能够更新父数组中的数组 我不确定我是否应该使用emit()以及如何确切地使用它。我尝试制作一个自定义事件“addHero”并将其传回。但是我遇到了错误 ChosenHeroes.vue HeroP

  • 我想在java应用程序中使用Carbon datasource创建一个数据库连接。我得到以下例外情况 Java代码 我该怎么解决这个问题?

  • 我想访问来自该对象数组的ends\u数据。。。但我不能让它工作。输出未定义。请帮帮我。

  • 我正在将道具传递给组件: 在上面的代码中,我已经注释了给出错误的行。如果我删除该行,它会正常工作并且模板渲染正确(我也可以看到{{MessageId}}的预期值)。因此传递数据的逻辑是正确的。 似乎在 data() 中访问 的方式是错误的。那么如何访问数据中的道具呢?