如何解决如何在 C# 中实现由 dapper 使用的类
我只有一个简单的问题,就是如何从数据库中为这些表创建类,这些类将被 dapper 使用,任何类型的实现都可以工作,无论是您的人员还是行业标准,就足够了一个几乎没有经验的新开发人员可以用它执行 crud 操作
(这不是实验的问题,因为起跑线是我不知道如何做这些,而且绝对没有解释我需要什么的来源,我一直在网上搜索,信不信由你,感谢您关心我只是尝试和搜索,但我必须恭敬地拒绝任何冒犯,我只是想粗暴,我希望这不会占用您太多时间
public class mem (main table to which every table connects)
{
public int Mem_id {get;set;}
public string Mem_name {get;set;}
public string Mem_gndr {get;set;}
public DateTime Mem_dob {get;set;}
//public int adrs_adrs_id {get;set;}
//public int union_union_id {get;set;}
//public int alot_alot_id {get;set;}
}
public class adrs (one to one mandatory relationship with mem table)
{
public int adrs_id {get;set;}
public string adrs_col1 {get;set;}
public string adrs_col2 {get;set;}
}
public class alot (one to one optional relationship with mem table)
{
public int alot_id {get;set;}
public string alot_no {get;set;}
}
public class union (one to many mandatory relationship with mem table)
{
public int union_id {get;set;}
public string union_nm {get;set;}
}
public class ci (one to many optional relationship with mem table)
{
public int ci_id {get;set;}
public string ci_mob {get;set;}
public string ci_eml {get;set;}
//public int mem_Mem_id {get;set;}
}
public class flat (many to many relationship with mem table)
{
public int flat_id {get;set;}
public string flat_type {get;set;}
}
public class mem_has_flat (this is the bridge class between mem and flat)
{ (many to many relationship bridge)
//public int mem_Mem_id {get;set;}
//public int flat_flat_id {get;set;}
}
)
我写了代码,格式正确,你一定明白我的问题在哪里,是连接属性,注释掉的是双正斜杠的问题
这花了我很多时间来写,请帮助,我知道乞求消除了这个问题,但我只是想表明我已经完成了我的研究,并尽我所能解释了这一点,让它保持原样不要编辑出来,谦虚的请求?
我没有不尊重的意思,我只是没有时间被严重卡住
解决方法
使用 Dapper 的最简单方法是不要尝试与表一一对应。相反,构建映射到您的查询的业务域实体。我不太明白您的架构(mem 是成员还是与内存有关)。
相反,请考虑具有三个表的经典订单系统:Customer、Order 和 Order_Item。
Customer
Customer_Id int,Customer_Name varchar(50)
-- etc
Order
Order_Id int,Customer_Id int,Order_Date DateTime,-- etc
Order_Item
Order_Item_Id int,Order_Id int,Item_Name varchar (50),Item_Description varchar(500),Item_Sold_Price decimal(12,2),Item_Quantity int,--etc
我在描述中省略了可空性、索引和 FK 信息。
现在考虑您要向用户显示他们最近购买的 10 件商品的列表,并显示购买日期
SELECT TOP (10)
o.OrderDate as PurchasedDate,oi.Item_Name as Item,oi.Item_Description as Description,oi.Item_Quantity as Quantity,oi.Item_Sold_Price as Price
FROM Order_Item oi
INNER JOIN Order o ON o.Order_Id = oi.Order_Id
INNER JOIN Customer c ON c.Customer_Id = o.Customer_Id
WHERE c.Customer_Id = @Customer_Id
使用该查询,我将准备一个看起来像的类
public class CustomerOrderItems {
public DateTime PurchasedDate { get; set; }
public string Item { get; set; }
public string Description { get; set; }
public int Quantity { get; set; }
public decimal Price { get; set; }
}
请注意,成员名称和类型与查询结果集的列名称和类型相匹配。现在,假设您在名为 query
的字符串变量中具有该查询,并在名为 customerId
的变量中具有客户 ID,您可以使用
var results = sqlConn.Query<CustomerOrderItems>(query,new {Customer_Id = customerId});
之后,results
将包含一个 IEnumerable<CustomerOrderItems>
,最多包含十个结果。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。