Код: Выделить всё
create table customer
(
id number(10),
name nvarchar2(1024),
primary key (id)
);
create table customer_order
(
id number(10),
customer_id number(10),
name nvarchar2(1024),
primary key (id),
foreign key (customer_id) references customer(id)
);
Код: Выделить всё
public class Customer
{
public int ID { get; set; }
public string? Name { get; set; }
public List CustomerOrders { get; set; } = new List();
}
public class CustomerOrder
{
public int ID { get; set; }
public string? Name { get; set; }
}
Код: Выделить всё
select
a.id customer_id, a.name customer_name,
b.id customer_order_id, b.name customer_order_name
from
customer a
inner join
customer_order b on a.id = b.customer_id
order by
a.id, b.id
Код: Выделить всё
customerА также оба класса C# (
Код: Выделить всё
CustomerМы хотим, чтобы база данных и определение класса C# были чисто и не многословно (идентификатор в Customer — это идентификатор клиента, и нет необходимости указывать его явно).
Поскольку Dapper сопоставляет столбцы базы данных с C# свойства либо по имени параметра конструктора, либо по имени свойства, как это может быть сопоставлено Dapper автоматически или как лучше всего это сделать в Dapper?
Даже я могу изменить имя столбца в Уровень SQL-запроса (
Код: Выделить всё
IDКод: Выделить всё
[Column(name: "CUSTOMER_ID")]Похоже, что Dapper не поддерживает
Код: Выделить всё
System.ComponentModel.DataAnnotations.Schema.ColumnAttribute
Подробнее здесь: https://stackoverflow.com/questions/791 ... from-the-c