我是 Dapper 的新生。尝试将 CRUD 操作与 Dapper 和 Dapper.SimpleCRUD 库合并。这是示例代码...
我的数据模型看起来像
Class Product
{
public string prodId {get;set;}
public string prodName {get;set;}
public string Location {get;set;}
}
简洁的实施 - 插入
public void Insert(Product item)
{
using(var con = GetConnection())
{
con.Insert(item);
}
}
由于数据库中的 ProdId 是一个身份列,因此失败。它如何表明 ProdId 是数据库中的标识列?
简洁的实施 - 获取
public IEnumerable<Product> GetAll()
{
IEnumerable<Product> item = null;
using (var con = GetConnection())
{
item = con.GetList<Product>();
}
return item;
}
它给出了一个例外:
“实体必须至少拥有一个[Key]属性”!
发生这种情况是因为您使用的是 Dapper 扩展,它已经实现了Insert
CRUD 扩展方法。理想情况下,这可以使用简单的方法来实现
con.Execute
在 Dapper 中,但由于您想传递一个对象并通过扩展自动创建插入查询,因此您需要帮助它理解,这是给定产品实体的主键,以下修改将有所帮助:
[Key]
public string prodId {get;set;}
其中 Key 属性应在以下位置实现Dapper Extension
or the Component Model
.
或者您可以重命名prodId
to Id
,这将自动使其成为密钥。另请检查以下内容link http://rnsx.co.uk/an-introduction-to-dapper-extensions/,您可以在其中为实体创建一个单独的映射器,从而定义键,无论您的情况如何
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)