C# 如何在C中实现dapper使用的类#

C# 如何在C中实现dapper使用的类#,c#,class,properties,dapper,C#,Class,Properties,Dapper,我只有一个简单的问题,那就是如何从数据库中为这些表创建类,这些类将由dapper使用,任何类型的实现工作,无论是您的人员还是行业标准,都足以让经验不足的新开发人员使用它执行crud操作 (这不是一个试验的问题,因为起点是我不知道如何做这些,绝对没有任何来源解释我需要什么,我已经在互联网上搜索了一个月,信不信由你,我感谢你对我只是尝试和搜索的关注,但我必须尊重地拒绝任何冒犯。)结束了,我只想积垢,我希望这不会占用你太多的时间 public class mem

我只有一个简单的问题,那就是如何从数据库中为这些表创建类,这些类将由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;}
  }
)

我已经写了代码,正确地格式化了它,你一定已经理解了我的问题所在,这是连接属性的问题,注释掉的属性是双正斜杠的问题


这花了我很多时间来写请帮助,我知道乞讨消除了这个问题,但我只是想表明我已经完成了我的研究,解释说,尽我最大的能力,让这一切保持原样,不要编辑它,谦虚的请求使用整洁的最简单的方法不是尝试将表映射到一对一。相反,建立业务映射到您的查询的主要实体。我不能完全理解您的模式(mem是一个成员还是关于内存的东西)

P>而是考虑一个具有三个表的经典订单系统:客户、订单和订单项目。
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});
var results=sqlConn.Query(Query,new{Customer\u Id=customerId});

之后,
结果
将包含一个
IEnumerable
,其中最多包含十个结果。

使用Dapper.Crud或Peta POCO的T4模板进行研究以生成类。感谢您的回复@DanielP,我真的很想感谢您,没有人回复,有人甚至否决了它,我已经搜索了您要求的内容,没有但它是为实体框架设计的,而且大部分内容都是非常先进的,因为我检查了许多与此相关的链接,这就是为什么我希望有人编辑我编写的类属性以使其正确,我可以通过查看此代码来实现它们,但似乎没有人提供帮助,感谢您再次响应Install Dapper.SimpleCrud nuget package to让T4模板生成表示现有数据库表的类。它不是实体框架。一旦生成了类,您就可以开始遵循简洁的教程。在那次否决投票后,我有点放弃了,您只需一个答案就填补了我理解中的所有空白,我真的受够了,因为它的家伙们喜欢谢谢你,我们新开发的人可以有所作为,老兄,我真的这么久了,再次感谢你@Flydog57