出售域名 11365.com.cn
有需要请联系 16826375@qq.com
在手机上浏览
在手机上浏览

一个简单的ORM

发布日期:2020-01-11

一个简单的ORM,以前老项目用的,用到反射+特性!

创建一个用户数据表

CREATE TABLE cms_User(
	[AutoID] [int] IDENTITY(1,1) primary key,
	[UserName] [nvarchar](50) NOT NULL,
	[Gander] [nvarchar](2) NULL,
	[Age] [int] NULL
)

添加一个实体类

[Table("cms_User")]
public class UserInfo
{
    [PrimaryKey]
    [Writeable(false)]
    public int AutoID { get; set; }
    public string UserName { get; set; }
    public string Gander { get; set; }
    public int Age { get; set; }
}

操作代码:

class Program
{
    static IDBFactory dbo = DataFactory.CreateDataFactory();
    static void Main(string[] args)
    {          
        UserInfo userAdd = new UserInfo() { 
            UserName="刘备",
            Gander="男",
            Age=56
        };
        int Id = dbo.InsertModel<UserInfo>(userAdd);
        Console.WriteLine(string.Format("添加一个用户[刘备],返回ID:{0}\r\n", Id));

        var user=dbo.GetModel<UserInfo>(Id);
        Console.WriteLine(string.Format("根据主键读取对象:key={0}的用户名:{1},年龄:{2}\r\n", Id, user.UserName, user.Age));

        user.Age = 60;
        bool isUpdated = dbo.UpdateModel<UserInfo>(user);
        Console.WriteLine(string.Format("更新用户:{0}的年龄:{1}\r\n", user.UserName, user.Age));

        var lst = dbo.GetList<UserInfo>(5);
        foreach (var item in lst)
        {
            Console.WriteLine(string.Format("会员信息列表:{0}的年龄:{1}", item.UserName, item.Age));
        }

        int totalCount=0;
        int totalPage=0;
        int pageIndex = 2;
        int pageSize = 3;
        var pages = dbo.GetPager<UserInfo>("", "AutoID desc", pageIndex, pageSize, ref totalCount, ref totalPage);
        Console.WriteLine(string.Format("\r\n分页信息:总记录页{0} 总页数:{1},当前第{2}页,每页显示{3}条记录",
            totalCount, totalPage, pageIndex, pageSize));
        foreach (var item in pages)
        {
            Console.WriteLine(string.Format("会员信息分页列表:{0}的年龄:{1}", item.UserName, item.Age));
        }

        dbo.DeleteModel<UserInfo>(user);
        Console.WriteLine(string.Format("\r\n删除用户:{0}", user.AutoID));

        Console.ReadLine();
    }
}

开源地址:

https://github.com/SinGooCMS/SimpleDAL