我有一个名为 的类Business
,它的属性Id
是 MS SQL Server 数据库中的标识字段。当我做一个INSERT
,它工作正常。如果我执行以下操作:
_db.Update(business);
我收到一个错误:
无效的列名“id” 数据库中的列是 BusinessId
我已将其映射到Id
如下:
public class BusinessMap : EntityMap<Business>
{
public BusinessMap()
{
Map(x => x.Id).ToColumn("BusinessId");
}
}
现在记住我的INSERT
作品。我尝试将Key
属性添加到类
[Table("Business")]
public class Business {
[Key]
public int Id { get; set; }
public string Name { get; set; }
.....
}
我的工作(我讨厌,但总比没有好):
我决定只打电话给 SP 来做这件事,这有点糟糕,因为我希望 dapper 可以处理这个问题。
_db.Query("BusinessUpdate",
param: new { businessId = business.Id, business.Name, business.LocatorUrl, business.Website }, commandType: CommandType.StoredProcedure);
我不知道为什么我们被迫得出结论,我们数据库中的每个身份列都被命名为“ID”,这在我看来很可笑,而且我认为我不需要证明我的架构设计是合理的,它应该让我改变它。现在,无论何时添加一个字段,我都必须更改 SP 和调用 SP 的代码,我将使用它,直到找到真正的答案。