【发布时间】:2012-12-14 10:26:41
【问题描述】:
我开始使用 BLToolkit 并且有一个新的优势:InsertOrReplace 当我尝试使用它时有一个例外: “InsertOrUpdate 方法不支持标识字段‘Margin.id’” 我的模型在这里:
[TableName("Margin")]
public class Margin
{
[PrimaryKey, Identity] public int id;
[NotNull] public string StoreID;
[PrimaryKey] public int? PrTypeID;
public decimal MarginRate;
[Association(ThisKey = "PrTypeID", OtherKey = "ProductID", CanBeNull = true)] public Product Product;
}
调用方法:
db.InsertOrReplace(new CSSWarranty.DataModel.DataModel.Margin()
{
MarginRate = newMargin.Margin,
PrTypeID = newMargin.ProductTypeID == 0 ? null : newMargin.ProductTypeID,
StoreID = newMargin.StoreID,
id = newMargin.MarginID
});
可能有人可以说如何使用下一个构造:db.Margin.InsertOrUpdate(x,y) 所有的问候!
我不明白为什么这个例子有效:
[TableName("Notification")]
public class Notification
{
[PrimaryKey] public string NotificationID;
public string Note;
}
呼叫:
var db = new RetailerDb()
db.InsertOrReplace(new DataModel.DataModel.Notification()
{
Note = note,
NotificationID = "ConfirmNote"
});
数据库类:
private var db = new RetailerDb();
public class RetailerDb : DbManager
{
public RetailerDb() : base("DBConnection")
{
}
public Table<DataModel.Margin> Margin
{
get { return GetTable<DataModel.Margin>(); }
}
}
【问题讨论】:
-
这里是否区分大小写,即
Margin.id != Margin.ID? -
映射中的字段在数据库(数据库)id =(映射)id 中具有相似的情况,如果您有使用 InsertOrReplace 的工作示例 - 请为我们提供它
-
你的代码中
db对象的类是什么?
标签: c# identity-column bltoolkit