use*_*540 6 c# sql dapper dapper-extensions
我是Dapper的新生儿.尝试将CRUD操作与Dapper和Dapper.SimpleCRUD lib结合使用.以下是示例代码...
我的数据模型看起来像
Class Product
{
public string prodId {get;set;}
public string prodName {get;set;}
public string Location {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
Dapper实现 - 插入
public void Insert(Product item)
{
using(var con = GetConnection())
{
con.Insert(item);
}
}
Run Code Online (Sandbox Code Playgroud)
由于Db中的ProdId是一个标识列,它失败了.它如何表明ProdId是DB中的标识列?
精巧的实施 - 获取
public IEnumerable<Product> GetAll()
{
IEnumerable<Product> item = null;
using (var con = GetConnection())
{
item = con.GetList<Product>();
}
return item;
}
Run Code Online (Sandbox Code Playgroud)
它给出了一个例外:
"实体必须至少有一个[Key]属性"!
Mri*_*boj 11
这是因为您正在使用Dapper扩展,它已实现InsertCRUD扩展方法.理想情况下,这可以通过简单实现
con.Execute 在Dapper中,但由于您希望传递一个对象并通过扩展自动创建插入查询,您需要帮助它理解,这是给定产品实体的主键,在修改之后应该有所帮助:
[Key]
public string prodId {get;set;}
Run Code Online (Sandbox Code Playgroud)
其中Key属性应在Dapper Extension或中实现Component Model.
或者,您可以重命名prodId为Id,这将自动使其成为关键.还要检查以下链接,您可以在其中为实体创建单独的映射器,从而定义密钥,无论您的情况如何
| 归档时间: |
|
| 查看次数: |
7544 次 |
| 最近记录: |