gpt4 book ai didi

c# - Dapper.SimpleCRUD 插入/更新/获取失败,消息为 "Entity must have at least one [Key] property"

转载 作者:太空狗 更新时间:2023-10-29 21:04:32 24 4
gpt4 key购买 nike

我是 Dapper 的新生。尝试将 CRUD 操作与 Dapper 和 Dapper.SimpleCRUD 库结合起来。这是示例代码...
我的数据模型看起来像

Class Product
{
public string prodId {get;set;}
public string prodName {get;set;}
public string Location {get;set;}
}

Dapper 实现 - 插入

public void Insert(Product item)
{
using(var con = GetConnection())
{
con.Insert(item);
}
}

由于 Db 中的 ProdId 是标识列,因此失败。它如何指示 ProdId 是数据库中的标识列?

Dapper 实现 - 获取

public IEnumerable<Product> GetAll()
{
IEnumerable<Product> item = null;
using (var con = GetConnection())
{
item = con.GetList<Product>();
}
return item;
}

它给出了一个异常(exception):

"Entity must have at least one [Key] property"!

最佳答案

这是因为您使用的是 Dapper 扩展,它已经实现了 Insert CRUD 扩展方法。理想情况下,这可以通过简单的方式实现

con.Execute 在 Dapper 中,但是由于你想传​​递一个对象并通过扩展自动创建一个插入查询,你需要帮助它理解,这是给定的主键产品实体,以下修改将有助于:

[Key]
public string prodId {get;set;}

其中 Key 属性应在 Dapper ExtensionComponent Model 中实现。

或者,您可以将 prodId 重命名为 Id,这将自动使其成为 key 。还要检查以下 link ,您可以在其中为实体创建一个单独的映射器,从而定义键,无论您的情况如何

关于c# - Dapper.SimpleCRUD 插入/更新/获取失败,消息为 "Entity must have at least one [Key] property",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33264891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com