beta 0.7
1)修改Linke相关方法在对应数组处理的错误
2)添加Mappings功能,用于支持对象描述映射
添加类,成员映射属性
添加成员统计描述属性
添加ID值描述属性
添加成员值转换属性
添加类默认访问Connection属性
3)扩展Expression直接支持对象查询,更新等相关操作
4)实现Interface to model的vsGenerator
根据描述的Interface生成相关实体模型
http://smarkdata.codeplex.com/
Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Smark.Data.Mappings;
namespace Smark.Data07.Test
{
[Table("Employees")]
interface IEmployee
{
/// <summary>
/// 雇员ID
/// </summary>
[ID]
[IDENTITY]
int EmployeeID { get; set; }
/// <summary>
/// 名字
/// </summary>
[Column]
string FirstName { get; set; }
/// <summary>
/// 姓
/// </summary>
[Column]
string LastName { get; set; }
/// <summary>
/// 出生日期
/// </summary>
[Column]
string BirthDate { get; set; }
/// <summary>
/// 所在国家
/// </summary>
[Column]
string Country { get; set; }
/// <summary>
/// 所在地区
/// </summary>
[Column]
string Region { get; set; }
/// <summary>
/// 所在城市
/// </summary>
[Column]
string City { get; set; }
}
/// 按国家统计雇员人数
/// </summary>
[Table("Employees")]
interface ICountByCountry
{
/// <summary>
/// 数量
/// </summary>
[Column("EmployeeID")]
[Count]
int Count { get; set; }
/// <summary>
/// 国家
/// </summary>
[Column]
string Country { get; set; }
}
/// 按地区统计雇员人数
/// </summary>
[Table("Employees")]
interface ICountByRegion
{
[Column("EmployeeID")]
[Count]
int Count { get; set; }
[Column]
string Region { get; set; }
}
/// 按城市统计雇员人数
/// </summary>
[Table("Employees")]
interface ICountByCity
{
[Column("EmployeeID")]
[Count]
int Count { get; set; }
[Column]
string City { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Smark.Data.Mappings;
namespace Smark.Data07.Test
{
[Table("Employees")]
interface IEmployee
{
/// <summary>
/// 雇员ID
/// </summary>
[ID]
[IDENTITY]
int EmployeeID { get; set; }
/// <summary>
/// 名字
/// </summary>
[Column]
string FirstName { get; set; }
/// <summary>
/// 姓
/// </summary>
[Column]
string LastName { get; set; }
/// <summary>
/// 出生日期
/// </summary>
[Column]
string BirthDate { get; set; }
/// <summary>
/// 所在国家
/// </summary>
[Column]
string Country { get; set; }
/// <summary>
/// 所在地区
/// </summary>
[Column]
string Region { get; set; }
/// <summary>
/// 所在城市
/// </summary>
[Column]
string City { get; set; }
}
/// <summary>
/// 按国家统计雇员人数
/// </summary>
[Table("Employees")]
interface ICountByCountry
{
/// <summary>
/// 数量
/// </summary>
[Column("EmployeeID")]
[Count]
int Count { get; set; }
/// <summary>
/// 国家
/// </summary>
[Column]
string Country { get; set; }
}
/// <summary>
/// 按地区统计雇员人数
/// </summary>
[Table("Employees")]
interface ICountByRegion
{
[Column("EmployeeID")]
[Count]
int Count { get; set; }
[Column]
string Region { get; set; }
}
/// <summary>
/// 按城市统计雇员人数
/// </summary>
[Table("Employees")]
interface ICountByCity
{
[Column("EmployeeID")]
[Count]
int Count { get; set; }
[Column]
string City { get; set; }
}
}
Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Smark.Data;
namespace Smark.Data07.Test
{
class Program
{
static void Main(string[] args)
{
Employee emp = new Employee();
emp.FirstName = "Henry";
emp.LastName = "Fan";
emp.Region = "亚洲";
emp.Country = "中国";
emp.City = "广州";
emp.Save();
int insertid = emp.EmployeeID;
Console.WriteLine(string.Format("ID:{0}\t FirstName:{1}", emp.EmployeeID, emp.FirstName));
Console.WriteLine(string.Format("ID:{0}\t FirstName:{1}", emp.EmployeeID, emp.FirstName));
Console.WriteLine("====================================================================");
IList<CountByCountry> country = new Expression().List<CountByCountry>();
foreach (CountByCountry item in country)
{
Console.WriteLine(string.Format("{0}:{1}", item.Country,item.Count));
}
Console.WriteLine("====================================================================");
IList<CountByRegion> region = new Expression().List<CountByRegion>();
foreach (CountByRegion item in region)
{
Console.WriteLine(string.Format("{0}:{1}", item.Region, item.Count));
}
Console.WriteLine("====================================================================");
IList<CountByCity> city = new Expression().List<CountByCity>();
foreach (CountByCity item in city)
{
Console.WriteLine(string.Format("{0}:{1}", item.City, item.Count));
}
Console.Read();
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Smark.Data;
namespace Smark.Data07.Test
{
class Program
{
static void Main(string[] args)
{
Employee emp = new Employee();
emp.FirstName = "Henry";
emp.LastName = "Fan";
emp.Region = "亚洲";
emp.Country = "中国";
emp.City = "广州";
emp.Save();
int insertid = emp.EmployeeID;
Console.WriteLine(string.Format("ID:{0}\t FirstName:{1}", emp.EmployeeID, emp.FirstName));
emp
= (Employee.city == "广州").ListFirst<Employee>();Console.WriteLine(string.Format("ID:{0}\t FirstName:{1}", emp.EmployeeID, emp.FirstName));
Console.WriteLine("====================================================================");
IList<CountByCountry> country = new Expression().List<CountByCountry>();
foreach (CountByCountry item in country)
{
Console.WriteLine(string.Format("{0}:{1}", item.Country,item.Count));
}
Console.WriteLine("====================================================================");
IList<CountByRegion> region = new Expression().List<CountByRegion>();
foreach (CountByRegion item in region)
{
Console.WriteLine(string.Format("{0}:{1}", item.Region, item.Count));
}
Console.WriteLine("====================================================================");
IList<CountByCity> city = new Expression().List<CountByCity>();
foreach (CountByCity item in city)
{
Console.WriteLine(string.Format("{0}:{1}", item.City, item.Count));
}
Console.Read();
}
}
}