SqlSugar/Src/Asp.Net/SqlServerTest/OldTest/Demos/G_Mapper.cs

92 lines
3.5 KiB
C#
Raw Normal View History

2019-01-20 01:01:40 +08:00
using OrmTest.Demo;
using OrmTest.Models;
2018-10-14 09:26:53 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OrmTest.Demo
{
2018-10-14 13:10:08 +08:00
public class Mapper : DemoBase
2018-10-14 09:26:53 +08:00
{
public static void Init()
{
var db = GetInstance();
2019-01-20 01:18:57 +08:00
db.CurrentConnectionConfig.InitKeyType = SqlSugar.InitKeyType.Attribute;
2018-10-14 09:26:53 +08:00
2019-01-20 01:01:40 +08:00
//create tables
db.CodeFirst.SetStringDefaultLength(100).InitTables(typeof(MyOrder),typeof(OrderItem),typeof(Person));
2018-10-14 09:26:53 +08:00
2019-01-20 01:01:40 +08:00
//init test data
db.DbMaintenance.TruncateTable("MyOrder");
db.DbMaintenance.TruncateTable("OrderItem");
db.DbMaintenance.TruncateTable("Person");
db.Insertable(new MyOrder() { orderName = "no1", orgId = "org1", masterPersonId=1 }).ExecuteCommand();
db.Insertable(new MyOrder() { orderName = "no2", orgId = "org2",masterPersonId=2 }).ExecuteCommand();
2018-10-14 13:10:08 +08:00
2019-01-20 01:01:40 +08:00
db.Insertable(new OrderItem() { masterOrderId=1}).ExecuteCommand();
db.Insertable(new OrderItem() { masterOrderId=1}).ExecuteCommand();
db.Insertable(new OrderItem() { masterOrderId=2 }).ExecuteCommand();
db.Insertable(new OrderItem() { masterOrderId=2 }).ExecuteCommand();
2019-01-10 13:50:19 +08:00
2018-10-14 13:10:08 +08:00
2019-01-20 01:01:40 +08:00
db.Insertable(new Person() { orgId = "org1"}).ExecuteCommand();
db.Insertable(new Person() { orgId ="org1" }).ExecuteCommand();
2018-10-14 13:10:08 +08:00
2019-01-20 01:01:40 +08:00
//demo
var list= db.Queryable<MyOrder>()
.Mapper(it => it.masterPerson, it => it.masterPersonId)
.Mapper(it => it.Persons, it => it.orgId)
.Mapper(it => it.OrderItems, it => it.OrderItems.First().masterOrderId)
2019-01-20 01:18:57 +08:00
.Mapper(it => it.OrderItemSignle, it => it.OrderItemSignle.masterOrderId)
2019-01-20 01:01:40 +08:00
.Mapper(it => {
it.orderName = it.orderName + "aa";//
})
.ToList();
2019-01-25 23:55:01 +08:00
var list2 = db.Queryable<MyOrder>()
.Mapper(it => it.masterPerson, it => it.masterPersonId)
.Mapper(it => it.Persons, it => it.orgId)
.Mapper(it => it.OrderItems, it => it.OrderItems.First().masterOrderId)
.Mapper(it => it.OrderItemSignle, it => it.OrderItemSignle.masterOrderId)
.Mapper(it => {
it.orderName = it.orderName + "aa";//
})
.ToListAsync();
list2.Wait();
2019-01-20 01:01:40 +08:00
}
public class MyOrder
{
[SqlSugar.SugarColumn(IsPrimaryKey=true,IsIdentity =true)]
public int orderId { get; set; }
public string orderName { get; set; }
public string orgId { get; set; }
public int masterPersonId { get; set; }
[SqlSugar.SugarColumn(IsIgnore = true)]
public List<OrderItem> OrderItems { get; set; }
[SqlSugar.SugarColumn(IsIgnore = true)]
2019-01-20 01:18:57 +08:00
public OrderItem OrderItemSignle { get; set; }
[SqlSugar.SugarColumn(IsIgnore = true)]
2019-01-20 01:01:40 +08:00
public List<Person> Persons { get; set; }
[SqlSugar.SugarColumn(IsIgnore = true)]
public Person masterPerson { get; set; }
}
public class Person
{
[SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int PersonId { get; set; }
public string orgId { get; set; }
}
public class OrderItem
{
[SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int itemId { get; set; }
public int masterOrderId { get; set; }
2018-10-14 09:26:53 +08:00
}
}
}